2

C++ブーストライブラリを使い始めたばかりです。directory_iteratorとrecursive_directory_iteratorで問題が発生しています。次のコードをコンパイルしようとすると、常にoperator!=に一致しません。私も==を無駄にしようとしました。

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;
    }
}

何か助けはありますか?ありがとう!

4

1 に答える 1

3

const boost::filesystem::recursive_directory_iterator end()変数を定義せず、代わりに、を返し、引数をとらないend関数の関数プロトタイプを宣言します(これが発生する理由を理解するには、「C ++の最も厄介な解析」を検索してください)。に変更します。endconst boost::filesystem::recursive_directory_iteratorconst boost::filesystem::recursive_directory_iterator end;

于 2012-06-05T04:35:56.653 に答える