typename map_type::iterator create (T a) { auto cpy=a; return map.emplace( std::move(a), std::move(cpy) ).first; }