我刚刚开始接触 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;
}
}
有什么帮助吗? 谢谢!
最佳答案
const boost::filesystem::recursive_directory_iterator end()
没有定义变量end
相反,它声明了函数end
的函数原型(prototype)。它返回 const boost::filesystem::recursive_directory_iterator
并且不接受任何参数(搜索“C++ 最令人烦恼的解析”以了解为什么会发生这种情况)。将其更改为 const boost::filesystem::recursive_directory_iterator end;
.
关于c++ - boost 目录迭代器错误 : no match for operator! =,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10891561/