2013-11-05 1 views
0

나는 다음과 같은 코드가 있습니다문제 :: unordered_map도()

typedef unsigned char tTerm; 
typedef uint64_t nTerm; 

boost::unordered_map<tTerm *, nTerm> map; 

nTerm function(tTerm * key) { 
    boost::unordered_map<tTerm *, nTerm>::iterator it = standardTerms.find(key); 
    if (it != standardTerms.end()) { 
     return it->second; 
    } 
} 

이 코드가 제대로 (맥 OS에서) 그 소리를 사용하여이 컴파일. 그러나 eclipse는 find() 메서드가 호출되는 방식에 문제가 있음을 경고합니다. 특히, 오류를 reture하여 find()가 호환되지 않는 인수와 함께 호출되었음을 알립니다 :

"잘못된 인수 '후보는 다음과 같습니다 : boost :: unordered :: iterator_detail :: iterator find &) 부스트 :: 정렬되지 않은 :: iterator_detail :: c_iterator>, const를 부스트 :: 정렬되지 않은 :: 자세히 :: ptr_node> *> 찾기 (const를 서명 숯불 &) 부스트 :: 정렬되지 않은 :: iterator_detail :: 반복자 >> 찾을 수 있습니다 (CONST # 10001 & const를 # 10000 &, # 10002 & const를) 부스트 :: 정렬되지 않은 :: iterator_detail :: c_iterator>, const를 부스트 :: 정렬되지 않은 :: 자세히 :: ptr_node> *>은 (CONST # 10000 &을 찾을 수 const # 10 001 &, CONST # 10002 &) ' "

지금 모든 코드가 제대로 컴파일, 그래서 그것이 일식 버그 있다고 할 수 있습니다. 그러나 나는이 메시지를 무시함으로써 중요한 것을 놓칠 수도있다. 어떻게 생각해?

답변

0

걱정할 것 없음. 내게 맞는 것 같아. 포인터를 키로 사용할 수 있습니다. 나는 그것이 일식의 잘못이라고 생각한다.

관련 문제