http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44436
--- Comment #28 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-06-09 13:27:56 UTC --- (In reply to comment #26) > For map, the first argument to emplace is going to be the key (I believe). We > can therefore determine if the key is already present in the map before we > construct the value object from the remaining arguments to emplace. Not necessarily: std::map<int, int> m; m.emplace(piecewise_construct_t, make_tuple(1), make_tuple(2));