title: What can you do with templates with zero template parameters?
body: <p>I learned some time ago that you can create templates with zero parameters. While it is not possible to create them directly, you can use member templates</p>
  
  <pre><code>template&lt;typename ...T&gt; 
  struct Maker {
     template&lt;T...&gt;
     struct HasNParams { };
  };
  
  Maker&lt;&gt;::HasNParams&lt;&gt; hnp;
  </code></pre>
  
  <p>I wonder whether this is intended to be well-formed and what you can do with these beasts. Can you pass them as template arguments, and create explicit specializations (I guess the only scenario is for the empty case then)?</p>