1
我有這樣一段加速代碼,通過目錄中的文件進行迭代:升壓目錄迭代器
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語句,因爲我的一些依賴庫是在發佈模式下編譯的。
嘗試在沒有編譯器優化的情況下編譯您的代碼。在調試會話中,您將能夠以這種方式看到更多,特別是您將能夠調試升壓代碼 – killogre
@killogre或者使用volatile關鍵字告訴編譯器不要優化變量。 – 2012-05-09 05:51:06
你正在使用哪個版本的boost :: filesystem? –