이 문제는 코드가 보이지 않으면 답할 수 있기를 바랍니다. 문제가있는 곳이 명확하지 않기 때문입니다. 나는 부스트 순서가 지정되지 않은 맵에 operator[]
을 사용하여 키를 찾고 매핑 된 벡터를 반환합니다. 이것은 할당 문의 오른쪽에 있지만, 내가 받고있는 오류는 operator[]
이 constness를 보장하지 않는다는 것을 암시하는 것처럼 보입니다. 나는 방금 const
-correctness를 배우려고 노력하기 시작했습니다. 누군가이 오류를 해독하고 문제가 무엇인지 안내 할 수 있습니까? 또는 세부 정보를 요청하십시오?C++ const-ness, 부스트 정렬되지 않은 맵, 연산자 []
컴파일러는 애플 LLVM 버전 4.2 (그 소리-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&);
^
당신은 ** [...]'theMap [theKey]; ** ** 대신 **을 의미합니까? – Chap
@ 예, 잘 발견했습니다, 고마워요! – juanchopanza