title: Recover type of generic collection given as template
body: <p>I am working on a generic class that essentially works like that</p>
  <pre class="lang-cpp prettyprint-override"><code>template&lt;typename T, typename Collection&gt;
  class myClass
  {
    T attr1, attr2, attr3; //Attributes are actually stored in multiple list-like nodes
  public:
    void method1(Collection&lt;T&gt; arg)
    {
      attr1 = arg[0];
      attr2 = arg[1];
      attr3 = arg[2];
    }
  };
  </code></pre>
  <p>For those who know, I am basically trying to create a generic Ternary Search Trie</p>
  <p>I've been wondering if there was a way for me to simply write my class so that I can call it like that <code>myClass&lt;vector&lt;int&gt;&gt;</code> (for example) and have my attributes be ints and my method argument be my vector of ints ?</p>