Я не могу использовать функцию вставки для станд :: tr1 :: unordered_map, я все время получаю следующее сообщение об ошибке при попытке построить:станд :: tr1 :: unordered_map вставка ошибка
/usr/include/c++/4.2.1/tr1/hashtable:855:14: error: cannot initialize return object of type '_Node *' (aka '_Hash_node<std::pair<const unsigned long long, Order>, false> *') with an rvalue of type 'bool'
return false;
^~~~~
Мои сгущенное код выглядит следующим образом:
#include <tr1/unordered_map>
#include "handler.h"
#include "endian_tools.h"
using namespace std::tr1;
using namespace std;
unordered_map<uint64_t, Order> book_by_id;
uint64_t ref_num = be64toh(msg);
Order order(ref_num);
book_by_id.insert(make_pair<uint64_t,Order>(ref_num, order));
Я думал, может быть, это было связано с тем, что я использовал долго долго, как ключ, но даже после того, как изменения, что к междунар я получаю ту же ошибку. Есть предположения? Я не смог найти кого-либо еще с этой ошибкой в любом месте в Интернете.
Какой у вас компилятор? – Ram
Просто FYI, причина использования функции 'std :: make_pair' заключается в том, что вам не нужно явно указывать типы (пусть вы выберете тип шаблона для вас). Вместо этого вы просто делаете 'book_by_id.insert (make_pair (ref_num, order));' –
'tr1 :: unordered_map'? Сколько лет вашему компилятору? – Borgleader