title: why using a template as a parameter in the STL map template is refused?
body: <p>I wrote this little code</p>
  <pre><code>std::map&lt;int,template&lt;class T&gt;&gt; map_;
  map_.insert(make_pair&lt;int,message&gt;(myMsg.id,myMsg));
  </code></pre>
  <p>but the compiler doesn't seem to get it and displays as an error</p>
  <pre><code>template argument 2 is invalid
  </code></pre>
  <p>and when I tried to correct by doing this</p>
  <pre><code>template&lt;class T&gt;
  std::map&lt;int,T&gt; map_;
  </code></pre>
  <p>it displays as an error :</p>
  <blockquote>
  <p>expected primary-expression before 'template' |</p>
  <p>error: expected ';' before 'template'</p>
  </blockquote>