编译我的 C++ 程序时,我没有收到任何错误,但是在 unordered_map 中,哈希函数失败,尝试按 0 修改。(stl 的 hashtable_policy.h 的第 345 行)
我找到了解决方法,但不知道为什么我一开始就遇到问题。我的结构看起来像这样,(抱歉具体代码。)
struct Player {
private:
Entity& entity = entityManager->create();
public:
Player() {
entity.addComponent(new PositionComponent(0, 0)); // Add component uses the unordered map.
}
};
Player playerOne; // Error perpetuates through constructor.
但是,如果我将 playerOne 声明为指针,如下所示:
Player* playerOne;
然后调用:
playerOne = new Player();
我没有任何问题。
我一直在寻找 - 没有成功。我可能做错了什么?