我正在使用boost文件系统列出给定路径的所有文件和目录。它的简单代码如下所示:
directory_iterator iterator(path("."));
for(; iterator != directory_iterator(); ++iterator) {
cout << iterator->path().filename() << endl;
}
它完全正常,但_CrtDumpMemoryLeaks()
报告以下内存泄漏:
Detected memory leaks!
Dumping objects ->
{470} normal block at 0x03CEDED8, 8 bytes long.
Data: <, > 2C FD D1 00 00 00 00 00
{394} normal block at 0x03CEE370, 8 bytes long.
Data: < > 04 FD D1 00 00 00 00 00
Object dump complete.
当注释掉for循环时,泄漏仍然存在,因此directory_iterator
必须以某种方式导致它们。据我所知,你不需要删除任何迭代器,那么这里可能出现什么问题呢?
PS:我在Windows 10上使用带有boost_1_60_0的Visual Studio 2015。