title: Deduction of the type of a nested template variadic non-type list
body: <p>Consider the following classes:</p>
  
  <pre><code>template&lt;class T, int...&gt; struct MyClass1 {};
  template&lt;class T, unsigned int...&gt; struct MyClass2 {};
  template&lt;class T, long long int...&gt; struct MyClass3 {};
  template&lt;class T, unsigned long long int...&gt; struct MyClass4 {};
  </code></pre>
  
  <p>I cannot modify these classes.</p>
  
  <p>Is it possible to write an helper class or function or something, that will return the type of the variadic list: </p>
  
  <pre><code>something&lt;MyClass1&gt;::type (-&gt; int)
  something&lt;MyClass2&gt;::type (-&gt; unsigned int)
  something&lt;MyClass3&gt;::type (-&gt; long long int)
  something&lt;MyClass4&gt;::type (-&gt; unsigned long long int)
  </code></pre>
  
  <p>and <code>size_t</code> if the variadic list is empty ?</p>