gpt4 book ai didi

c++ - std::tr1::unordered_map 插入错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:40 27 4
gpt4 key购买 nike

我无法使用 std::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));

我认为这可能与我使用 long long 作为 key 这一事实有关,但即使将其更改为 int 之后,我也会遇到同样的错误。有什么想法吗?我无法在网上的任何地方找到任何其他人遇到此错误。

最佳答案

我认为问题在于我的 gcc 版本及其不支持 C++11(Mac OSX 默认使用旧的 gcc 版本,这就是我遇到这种情况的原因)。我使用 macports 将我的 gcc 升级到 4.8,将其设置为默认值,并按照以下说明使用 CrossGCC 编译器创建了一个新项目:use c++11 on mac os x mountain lion with eclipse (Juno or Kepler) .我删除了 tr1,现在只使用 #include <unordered_map> .现在我可以使用插入方法了。

感谢大家的建议。

关于c++ - std::tr1::unordered_map 插入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28257558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com