2

我刚刚开始接触 C++ boost 库。我遇到了 directory_iterator 和 recursive_directory_iterator 的问题。当我尝试编译以下代码时,我总是得到一个不匹配的运算符!=。我也试过==无济于事。

const boost::filesystem::recursive_directory_iterator end();
for(boost::filesystem::recursive_directory_iterator i(p); i != end; i++){
    if(boost::filesystem::is_regular_file(i->status())){
        cout << i->path().filename() << endl;
    }
}

有什么帮助吗?谢谢!

4

1 回答 1

3

const boost::filesystem::recursive_directory_iterator end()没有定义变量end,而是为函数声明了一个函数原型,end该函数返回 aconst boost::filesystem::recursive_directory_iterator并且不接受任何参数(搜索“C++ most vexing parse”以了解为什么会发生这种情况)。将其更改为const boost::filesystem::recursive_directory_iterator end;.

于 2012-06-05T04:35:56.653 回答