title: what to use in place of std::map::emplace?
body: <p>For containers such as <code>std::map&lt; std::string, std::unique_ptr&lt; Foo &gt;&gt;</code>, it looks like <code>emplace()</code> has yet to be implemented in stdc++ as of gcc 4.7.2.</p>
  
  <p>Unfortunately, I can't store Foo directly by value as it is an abstract super-class. </p>
  
  <p>As a simple, but inefficient, place-holder, I've just been using <code>std::map&lt; std::string, Foo* &gt;</code> in conjunction with a <code>std::vector&lt; std::unique_ptr&lt; Foo &gt;&gt;</code> for garbage collection.</p>
  
  <p><em>Do you have a interim solution that is more efficient and more easily replaced once emplace() is available?</em></p>