title: Tuple of vectors and push back
body: <p>I have a tuple of vectors, I would like to <code>push_back()</code> each value from an initializer list into the corresponding vector in the "vectors tuple". The <code>create()</code> function in the code is where I would like to do this.</p>
  
  <pre><code>template&lt;typename...Fields&gt;
  class ComponentManager
  {
    using Index = int;
  public:
    /**
     * Provides a handle to a component
     **/
    struct ComponentHandle {
      static constexpr Index Nil = -1;
      bool nil() { return index == Nil; }
      const Index index;
    };
  
    ComponentHandle lookup(Entity e) { 
      return ComponentHandle{get(m_map,e,-1)}; 
    }
  
    template&lt;int i&gt;
    auto get(ComponentHandle handle) {
      return std::get&lt;i&gt;(m_field)[handle.index];
    }
  
    ComponentHandle create(Entity e, Fields ...fields) {
      m_entity.push_back(e);
      // m_fields.push_back ... ???
    }
  
  private:
    std::vector&lt;Entity&gt;                m_entity;
    std::tuple&lt;std::vector&lt;Fields&gt;...&gt; m_field;
    std::map&lt;Entity,Index&gt;             m_map;
  };
  </code></pre>
  
  <p>Example:</p>
  
  <pre><code>Entity e1, e2;
  ComponentManager&lt;int,float,int&gt; cm{};
  cm.create(e1, 42, 1337.0, 99);
  cm.create(e2, 84, 2674.0, 198);
  // Resulting contents of cm.m_field tuple
  // { 
  //    vector&lt;int&gt;   [ 42, 84 ], 
  //    vector&lt;float&gt; [ 1337.0, 2674.0 ]
  //    vector&lt;int&gt;   [ 99, 198 ]
  // }
  </code></pre>