title: Vector in GCC 4.4.7 Vs GCC 4.9.2
body: <p>I have a code like below.</p>
  <pre><code>void func() 
  {
      typedef map&lt;pair&lt;uint,ulong&gt;, pair&lt;int,int&gt; &gt; MyMap;
      MyMap myMap;
      vector&lt;MyMap::value_type&gt; mapVector;
      //...
      for(MyMap::iterator it = myMap.begin(); it != myMap.end(); it++)
      {
          //if(...)
              mapVector.push_back(*it);
      }
      //...
  }
  </code></pre>
  <p>It compiles fine with -std=gnu++11 option in GCC 4.9.2, see <a href="https://wandbox.org/permlink/W38hsTFKNJrjp2Q9" rel="nofollow noreferrer">here</a> but fails with -std=gnu++0x option in GCC 4.4.7, see <a href="https://wandbox.org/permlink/tXIkIL3j8pZ7segu" rel="nofollow noreferrer">here</a>. The failure is in operator= on const pair. So how does it work with GCC 4.9.2? Can someone shed light on this difference? Thanks in advance!</p>