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();
問題はありません。
私は検索してきました-成功しませんでした。私は何が間違っているのでしょうか?