title: C++ call templated constructor for template class
body: <p>I have a template class, with variadic argument list:</p>
  
  <pre><code>template&lt;class ...Args&gt;
  struct Data{
  };
  </code></pre>
  
  <p>Now I want to have constructor with variadic "universal reference" argument list, so I make my constructor templated:</p>
  
  <pre><code>template&lt;class ...Args&gt;
  struct Data{
  
      template&lt;class ...CtrArgs&gt;
      Data(CtrArgs&amp;&amp; ... args){
          // do something
      }
  
  };
  </code></pre>
  
  <p>And now I want to make an instance of <code>Data</code>:</p>
  
  <pre><code>Data&lt;int, MyClass, bool&gt; dat(1, MyClass(), false);
       ^^^^^^^^^^^^^^^^^^
       Is this Args? Or CtrArgs?
  </code></pre>
  
  <p>The question is, does this <code>&lt;int, MyClass, bool&gt;</code> goes to Args, or to CtrArgs?</p>
  
  <p>P.S. Maybe this is easy to check. But I ask this because I have very strange behavior in more complex case.</p>