title: uninitialized local variable 'a' used by VS2012 on the object of a template class
body: <p>In VS2012, the below code doesn't compile, it says
  <code>error C4700: uninitialized local variable 'a' used</code> on the line <code>A&lt;int&gt; b(a);</code>
  I tested it in gcc4.4.7, it's fine.</p>
  
  <p>I had thought something prevents the compiler to generate the default constructor, but it seems just an issue with VS2012. Why does it give this error, any explanation on how the compiler process the code?</p>
  
  <pre><code>template&lt;typename T&gt;
  class A
  {
  public:
      T* p;
  };
  
  int main()
  {
      A&lt;int&gt; a;
      A&lt;int&gt; b(a);
  }
  </code></pre>