Boost directory_iterator错误:不匹配operator!=

时间:2012-06-05 04:27:53

标签: c++ boost

我刚开始进入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;
    }
}

有任何帮助吗? 谢谢!

1 个答案:

答案 0 :(得分:3)

const boost::filesystem::recursive_directory_iterator end()没有定义变量end而是声明函数end的函数原型,它返回const boost::filesystem::recursive_directory_iterator并且不接受任何参数(搜索“C ++”最令人烦恼的解析“理解为什么会发生这种情况”。将其更改为const boost::filesystem::recursive_directory_iterator end;