我在當前的C++項目中使用unordered_map
,並有以下問題:unordered_map shared_ptrs的突破C++程序
當我插入一對對象進入unordered_map
,在PROGRAMM休息和Windows顯示我來說的「[。 ..]。exe已停止工作「,但沒有提供任何有關控制檯(cmd)的信息。一些示例代碼:
#include <unordered_map>
#include <network/server/NetPlayer.h>
#include <gamemodel/Player.h>
int main(int argc, char **argv) {
NetGame game;
boost::asio::io_service io_service;
NetPlayerPtr net(new NetPlayer(io_service, game));
PlayerPtr player(new Player);
std::unordered_map<PlayerPtr, NetPlayerPtr> player_map;
// Here it breaks:
player_map[player] = net;
return 0;
}
我已經嘗試過:
我試着用包裝一個try-catch線,但沒有成功。關於代碼
詳情:
NetPlayerPtr和PlayerPtr是boost::shared_ptr
對象,前者包含了一些boost::asio
對象,如io_service
和socket
,後者包含幾個自定義對象。
我正在用MinGW gcc編譯,在64位Windows上啓用C++ 11。
如果需要更多的細節,請詢問。
你試過調試器嗎? –
不,我沒有像GDB這樣的調試器的使用經驗(如果你正在談論這個)。 – msiemens
@ m - s現在是你的機會! – 2012-12-21 10:54:47