title: How to defined constructor outside of template class
body: <p>I get linker error if I define constructor\destructor of template class outside the class. Is it not allowed?
  I use Visual studio 2010.</p>
  
  <p>error
  1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Tree::~Tree(void)" (??1?$Tree@H@@QAE@XZ) referenced in function _main</p>
  
  <p>1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Tree::Tree(void)" (??0?$Tree@H@@QAE@XZ) referenced in function _main</p>
  
  <p>In .h file</p>
  
  <pre><code>template &lt;class T&gt;
  class Tree{
  public:
      Tree(void);
      ~Tree(void);
      T x;
  };
  </code></pre>
  
  <p>in .cpp file</p>
  
  <pre><code>#include "Tree.h"
  
  template &lt;class T&gt; Tree&lt;T&gt;::Tree(void){
  }
  
  template &lt;class T&gt; Tree&lt;T&gt;::~Tree(void){
  }
  </code></pre>
  
  <p>in main.cpp file</p>
  
  <pre><code>#include "Tree.h"
  int main(){
      Tree&lt;int&gt; t;
      return 0;
  }
  </code></pre>