我刚开始进入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;
}
}
有任何帮助吗? 谢谢!
答案 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;
。