title: std::set has no member emplace
body: <p>Does g++ 4.7.2 implement <code>std::set::emplace</code>, as defined by the C++11 Standard and documented <a href="http://en.cppreference.com/w/cpp/container/set/emplace" rel="noreferrer">here</a>?</p>
  
  <p>I have written the following little test case:</p>
  
  <pre><code>#include &lt;set&gt;
  #include &lt;string&gt;
  
  struct Foo
  {
      std::string mBar;
      bool operator&lt;(const Foo&amp; rhs) const
      {
          return mBar &lt; rhs.mBar;
      }
      Foo(const std::string bar) : mBar(bar) {};
  };
  
  typedef std::set&lt;Foo&gt; Foos;
  
  int main()
  {
      Foos foos;
      foos.emplace(std::string("Hello"));
  }
  </code></pre>
  
  <p>Under G++ 4.7.2, this fails to compile:</p>
  
  <pre><code>[john.dibling@somewhere hacks]$ g++ -o main.o -std=c++0x -c main.cpp
  main.cpp: In function ‘int main()’:
  main.cpp:19:10: error: ‘Foos’ has no member named ‘emplace’
  </code></pre>
  
  <p>Also fails to compile under <a href="http://ideone.com/Dgteux" rel="noreferrer">IDEOne</a>, however it does compile under MSVC 2012 Update 1.</p>