title: Linker cannot resolve symbol in template derivered override
body: <p>I have base class </p>
  
  <pre><code>template&lt;typename T&gt;
  struct Counter {
      static int objects;
  
      virtual size_t getSize() = 0;
      ... //some other things
  };
  </code></pre>
  
  <p>And derived class (in same file):</p>
  
  <pre><code>template &lt;typename T, int N&gt;
  struct A : Counter&lt;A&lt;T,N&gt;&gt;{
      T data[N];
      size_t getSize() override {  //override don't make error
          return 100;  //100 for testing purpose only
      }
  };
  </code></pre>
  
  <p>and later i use</p>
  
  <pre><code>A&lt;int,10&gt; a1;
  </code></pre>
  
  <p>When i'm trying to compile, i got linker error:</p>
  
  <pre><code>LNK2019 unresolved external symbol "public: virtual unsigned int __thiscall  Counter&lt;struct A&lt;int,10&gt; &gt;::getSize(void)" (?getSize@?$Counter@U?$A@H$09@@@@UAEIXZ) referenced in function "public: __thiscall Counter&lt;struct A&lt;int,10&gt; &gt;::Counter&lt;struct A&lt;int,10&gt; &gt;(void)" (??0?$Counter@U?$A@H$09@@@@QAE@XZ)    
  </code></pre>