次のコードがあります。
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;
}
}
このコードは、(MacO で) clang を使用して正しくコンパイルされます。ただし、eclipse は、find() メソッドの呼び出し方法に問題があることを警告しています。具体的には、エラーを返すことにより、互換性のない引数で find() が呼び出されたことを警告します。
"無効な引数 ' 候補は次のとおりです: boost::unordered::iterator_detail::iterator>> find(const unsigned char &) boost::unordered::iterator_detail::c_iterator>,const boost::unordered::detail::ptr_node> *> find(const unsigned char &) boost::unordered::iterator_detail::iterator>> find(const #10000 &, const #10001 &, const #10002 &) boost::unordered::iterator_detail::c_iterator>, const boost::unordered::detail::ptr_node> *> find(const #10000 &, const #10001 &, const #10002 &) '"
すべてのコードが正しくコンパイルされるようになったので、Eclipse のバグである可能性があります。ただし、このメッセージを無視すると、重要な情報が失われる可能性があります。どう思いますか?