1

問題の所在がよくわからないので、コードを見なくてもこの質問に答えられることを願っています。operator[]Boost unordered マップを使用してキーを見つけ、マップ先のベクトルを返します。これは割り当てステートメントの RHS にありますが、私が得ているエラーは、それがoperator[]constness を保証していないことを暗示しているようです。正しさを学び始めたところconstです。誰かがこのエラーを解読して、何が問題なのか教えてくれませんか? それとも詳細を尋ねますか?

コンパイラはApple LLVM バージョン 4.2 (clang-425.0.28)

Block.cpp:89:39: error: no viable overloaded operator[] for type 'const Record_map' (aka 'const unordered_map<Typecode, FV_pair_vec>')
    FV_pair_vec const fv_vec = records[rec_type];
                               ~~~~~~~^~~~~~~~~
/usr/local/include/boost/unordered/unordered_map.hpp:420:22: note: candidate function not viable: 'this' argument has type 'const Record_map'
      (aka 'const unordered_map<Typecode, FV_pair_vec>'), but method is not marked const
        mapped_type& operator[](const key_type&);
                     ^
4

1 に答える 1