これはばかげているように聞こえますが、この単純な例を見てください(作業ディレクトリには複数の項目が必要です)。
#define BOOST_FILESYSTEM_VERSION 3
#include <boost/filesystem.hpp>
#include <cassert>
int main()
{
using namespace boost::filesystem;
directory_iterator it("./");
directory_iterator it_copy = it;
++it;
assert(it_copy != it);
return 0;
}
it_copy
と一緒に変更されit
ます!(ブースト1.45)そのような設計につながる可能性のある考慮事項は何ですか(directory_iterator
スマートptrのようなものです)?
後で使用するには、のコピーを保存する必要がありますdirectory_iterator
。