if I have this map
std::unordered_map<std::string, int*> sockets; //a map holding all active sockets how come I can do this :
sockets[_myId]=(int*)lp; //all ok - insert succeeds but I can't do this :
if(!sockets.emplace(_myId,(int*)lp).second) { /*insert failed, act accordingly*/ } Invalid arguments ' Candidates are: ? emplace(#10000(...) && ...) ' I don't understand why this happens. Thx for any assistance.
std::unordered_map<std::string, int*> sockets; bool foo(const char *p, int n) { return sockets.emplace(p, &n).second; }