title: instantiation of a template constructor of template class
body: <p>What's wrong with the following code? <a href="https://stackoverflow.com/questions/15045879/explicit-instantiation-of-templated-constructor-for-template-class">This SO question</a> doesn't help me.</p>
  
  <p>exts.h:</p>
  
  <pre><code>template &lt;typename T&gt; class MyClass
  {
  public:
      MyClass();
      MyClass(const MyClass&amp; tocopy);
      template &lt;typename U&gt; MyClass(const MyClass&lt;U&gt;&amp; tocopy);
      // ...
  };
  </code></pre>
  
  <p>exts.cpp:</p>
  
  <pre><code>#include "exts.h"
  template &lt;typename T&gt; MyClass&lt;T&gt;::MyClass() {}
  template &lt;typename T&gt; MyClass&lt;T&gt;::MyClass(const MyClass&amp; tocopy)
  {// ... }
  
  template &lt;typename T&gt; template &lt;typename U&gt; MyClass&lt;T&gt;::MyClass(const MyClass&lt;U&gt;&amp; tocopy)
  {// ... }
  
  template class MyClass&lt;int&gt;;    //instantiation of the class
  template class MyClass&lt;double&gt;; //instantiation of the class
  template MyClass&lt;double&gt;::MyClass(const MyClass&lt;int&gt;); //instantiation of specifized class member? ERROR here!!
  </code></pre>
  
  <p>main.cpp:</p>
  
  <pre><code>#include "exts.h"
  //...
  MyClass&lt;double&gt; a; //...
  MyClass&lt;int&gt; b(a); 
  </code></pre>
  
  <p>The error I get under VS2012++ at the line noted is:</p>
  
  <blockquote>
    <p>error C3190: 'MyClass::MyClass(const MyClass)' with the
    provided template arguments is not the explicit instantiation of any
    member function of 'MyClass'</p>
  </blockquote>
  
  <p>And under g++ is:</p>
  
  <blockquote>
    <p>exts.cpp:18:10: error: template-id ‘MyClass&lt;>’ for
    ‘MyClass::MyClass(MyClass)’ does not match any template
    declaration  template MyClass::MyClass(const MyClass);</p>
  </blockquote>