title: Copy constructor not called in templated class
body: <p>I have the following class in file <code>myclass.hpp</code>:</p>
  
  <pre><code>#ifndef MYCLASS_HPP
  #define MYCLASS_HPP
  #include &lt;cstdlib&gt;
  #include &lt;iostream&gt;
  template &lt;std::size_t l, typename T&gt;
  class MyClass {
  public:
    MyClass();
    MyClass(const MyClass&lt;l,T&gt;&amp; other);
  };
  #include "myclass.tpp"
  #endif
  </code></pre>
  
  <p>And the pseudo implementation file <code>myclass.tpp</code>:</p>
  
  <pre><code>template &lt;std::size_t l, typename T&gt;
  MyClass&lt;l,T&gt;::MyCLass() {
    std::cout &lt;&lt; "Ctor" &lt;&lt; std::endl;
  }
  template &lt;std::size_t l, typename T&gt;
  MyClass&lt;l,T&gt;::MyCLass(const MyCLass&lt;l,T&gt;&amp; other) {
    std::cout &lt;&lt; "COPY Ctor" &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>In my main file I have:</p>
  
  <pre><code>#include "myclass.hpp"
  int main(int argc, char** argv) {
    MyCLass&lt;10,int&gt; m1;
    MyClass&lt;10,int&gt; m2;
    m1 = m2; // &lt;-- HERE
  }
  </code></pre>
  
  <p>The copy constructor is not called. The printout is the following:</p>
  
  <blockquote>
    <p>Ctor </p>
    
    <p>Ctor</p>
  </blockquote>
  
  <p>What am I doing wrong? Thankyou</p>