title: How do I access variadic members?
body: <pre><code>template&lt;typename... Types&gt;
  struct Foo;
  
  template&lt;typename T , typename... Types&gt;
  struct Foo&lt;T, Types ...&gt; : public Foo&lt;Types ...&gt;
  {
      Foo( T member , Types ... others ) : Foo&lt;Types ...&gt;( others... ), m_member( member )
      {
      }
  
      T   m_member;
  };
  
  template&lt;typename T&gt;
  struct Foo&lt;T&gt;
  {
      Foo( T member ) : m_member( member )
      {
      }
  
      T   m_member;
  };
  
  int main()
  {
    Foo&lt;char,int,bool,double&gt; f( 'a' , 42 , true , 1.234 );
  }
  </code></pre>
  
  <p>I found this code somewhere on SO and I am wondering if it's completely useless? It seems to me that all members are called <code>m_member</code> so how would I access them?</p>
  
  <p>If I do <code>cout &lt;&lt; f.m_member;</code> it will print 'a', but I see no way to access the other members.</p>