我在当前的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