title: variadic template of a specific type
body: <p>I want a variadic template that simply accepts unsigned integers.
  However, I couldn't get the following to work.</p>
  
  <pre><code>struct Array
  {
      template &lt;typename... Sizes&gt; // this works
      // template &lt;unsigned... Sizes&gt; -- this does not work (GCC 4.7.2)
      Array(Sizes... sizes)
      {
          // This causes narrowing conversion warning if signed int is supplied.
          unsigned args[] = { sizes... };
          // ...snipped...
      }
  };
  
  int main()
  {
      Array arr(1, 1);
  }
  </code></pre>
  
  <p>Any help appreciated.</p>
  
  <p>EDIT: In case you're wondering, I'm trying to use variadic template to replicate the following.</p>
  
  <pre><code>struct Array
  {
      Array(unsigned size1) { ... }
      Array(unsigned size1, unsigned size2) { ... }
      Array(unsigned size1, unsigned size2, unsigned size3) { ... }
      // ...
      Array(unsigned size1, unsigned size2, ..., unsigned sizeN) { ... }
  };
  </code></pre>