我有这段 Boost 代码迭代目录中的文件:
void someFuncToIterateFiles() {
if( exists( directory ) )
{
directory_iterator end ;
for( directory_iterator iter(directory) ; iter != end ; ++iter ) {
if ( !is_directory( *iter ) )
{
// this is a file
cout << iter->path;
// rest of the code
}
}
}
}
我发现有时当它读取一个存在并且即将开始遍历文件的目录时,程序只是停止并且没有错误或分段错误。其余的代码位根本不执行,函数返回给调用者这很奇怪,因为我以前没有遇到过这样的事情。不会抛出异常,除非这需要我们显式使用 try-catch 异常处理程序。
有人在 Boost 上遇到过这种情况吗?我无法调试,只能使用 cout 语句,因为我的一些依赖库是在发布模式下编译的。