title: Syntax of C++ Template Template Parameters
body: <p>I'm having difficulty understanding the syntax of C++ Template Template parameters. I understand why they are useful, as per the excellent description <a href="http://www.informit.com/articles/article.aspx?p=376878">here</a>, I just find their syntax hard to get to understand. Two examples taken from the above website (there are others):</p>
  
  <pre><code>template &lt;typename T, template &lt;typename&gt; class Cont&gt;
  class Stack;
  </code></pre>
  
  <p>and</p>
  
  <pre><code>template &lt;template &lt;typename,typename&gt; class Cont&gt;
  class Wrapper3;
  </code></pre>
  
  <p>Clearly generalizing such declarations is impossible without some understanding of the rationale behind this syntax. Memorizing is harder and does not seem to be of much help. </p>
  
  <p>Edit:
  I realize that my attempt at a question came across like an observation. What I'm asking for is help on how to interprete the Template Template parameter syntax in everyday speak. I can do this with the C++ syntax and the all the other programming languages that I've learned. However I'm having difficulty "explaining" the syntax of C++ Template Template parameters to myself. I've gotten a book, "C++ templates : the complete guide" by David Vandevoorde and Nicolai M. Josuttis, and while its a nice book, it hasn't been of much help to me in understanding this syntax which I'm sure many will agree is at best quirky.</p>