title: Error in declaring unordered_map which maps string to a template
body: <pre><code>template&lt;typename T&gt;
  struct hash;
  
  template&lt;typename T&gt; class WUG{
      public:
          WUG(){
              unordered_map&lt;string,typename T,hash&gt; vertexmap; //Problem
          }
  };
  </code></pre>
  
  <p>I am getting some error in this code which really doesn't say anything to me. How should I declare it properly?</p>
  
  <p>The error message I'm having is:<br>
      [Error] template argument 2 is invalid<br>
  [Error] template argument 5 is invalid</p>