title: Variadic template function with no arguments
body: <p>I want to write a function that will do an operation based on the types, not arguments, of a function. As such, the function receives no template based arguments. The general gist is something like this:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  void func() {
      std::cout&lt;&lt;"End marker\n";
  }
  
  template &lt;typename Type, typename... T&gt;
  void func() {
      std::cout&lt;&lt;"Type sizeof "&lt;&lt;sizeof(T)&lt;&lt;"\n";
  
      func&lt;T...&gt;();
  }
  
  int main() {
      func&lt;int, int, int&gt;();
  }
  </code></pre>
  
  <p>Which, of course, doesn't compile. I've tried doing this:</p>
  
  <pre><code>template &lt;typename Type, typename... T&gt;
  void func() {
      std::cout&lt;&lt;"Type sizeof "&lt;&lt;sizeof(T)&lt;&lt;"\n";
  
      if( sizeof...(T)!=0 )
          func&lt;T...&gt;();
  }
  </code></pre>
  
  <p>This does not work, however. The <code>func&lt;T...&gt;</code> may not get evaluated, but it does need to be compilable.</p>
  
  <p>Is there a way to do this that I'm missing?</p>