проблемы с методом find () для 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 (в MacO). Однако 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 без знака) &)
boost :: unordered :: iterator_detail :: iterator >> find (const # 10000 &конст. № 10001 &, const # 10002 &)
boost :: unordered :: iterator_detail :: c_iterator>, const boost :: unordered :: detail :: ptr_node> *> find (const # 10000 &конст. № 10001 &, const # 10002
&) ‘»

Теперь весь код компилируется правильно, так что, возможно, это ошибка затмения. Однако я могу упустить что-то важное, игнорируя это сообщение. Как вы думаете?

0

Решение

Не о чем беспокоиться. Выглядит правильно для меня. Вы можете использовать указатели в качестве ключей. Я думаю, что это вина затмения.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]