boost :: unordered_map()的find()方法问题

时间:2013-11-05 07:29:54

标签: c++ boost 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;
  }
}

此代码使用clang(在MacOs中)正确编译。但是,eclipse警告调用find()方法的方式存在问题。更具体地说,它通过返回错误警告使用不兼容的参数调用find():

“无效的参数”候选人是:  升压::无序:: iterator_detail:迭代&GT;&GT; find(const unsigned char&amp;)  boost :: unordered :: iterator_detail :: c_iterator&gt;,const boost :: unordered :: detail :: ptr_node&gt; * GT; find(const unsigned char&amp;)  升压::无序:: iterator_detail:迭代&GT;&GT; find(const#10000&amp;,const#10001&amp;,const#10002&amp;)  boost :: unordered :: iterator_detail :: c_iterator&gt;,const boost :: unordered :: detail :: ptr_node&gt; * GT; find(const#10000&amp;,const#10001&amp;,const#10002  &amp;)'“

现在所有代码都正确编译,所以它可能是一个日食错误。但是,忽略这条消息,我可能会遗漏一些重要的东西。你觉得怎么样?

1 个答案:

答案 0 :(得分:0)

没什么可担心的。看起来对我不对。您可以使用指针作为键。我认为这是日食的错误。