title: Why can't I push a const pointer to std::vector?
body: <p>Consider the piece of code:</p>
  
  <pre><code>class T;
  
  void constructVector(const T* item)
  {
     std::vector&lt;T*&gt; v;
     v.push_back(item);
  }
  </code></pre>
  
  <p>I get an error with MSVC 2010 compiler:</p>
  
  <blockquote>
    <p>error: C2664: 'void std::vector&lt;_Ty>::push_back(_Ty &amp;&amp;)' : cannot
    convert parameter 1 from 'const T *' to 'T *&amp;&amp;' with [
        _Ty=T * ] Conversion loses qualifiers</p>
  </blockquote>
  
  <p>I can see this particular conversion is illegal, but I don't believe my code is semantically wrong. I also believe there's <code>push_back(const T&amp;)</code> variant, why isn't that matched to my call?</p>