title: Initialize tuple member in constructor of variadic template class
body: <p>Suppose I have a class of a variable:</p>
  
  <pre><code>class Variable
  {
    const std::string name;
    const double scale;
  
  public:
    Variable(const std::string&amp; _name, double _scale) : name(_name), scale(_scale) { }
  };
  </code></pre>
  
  <p>Now I define a class of a system containing variables:</p>
  
  <pre><code>template&lt;class... T&gt;
  class System
  {
   std::tuple&lt;T...&gt; variables;
  
  public:
   System(???) : ??? { }
  };
  </code></pre>
  
  <p>How can I define the constructor of the <code>System</code> that will somehow pass its agruments to <code>variables</code> to initialize each of them? I would like to be able to write something like this:</p>
  
  <pre><code>class VAR1 : public Variable { };
  class VAR2 : public Variable { };
  
  System&lt;VAR1, VAR2&gt; s{ /* init values: ("VAR1", 10), ("VAR2", 20) */};
  </code></pre>