title: Is there a container that can store items of different types?
body: <p>Storing items of the same type is trivial, but I need a container that can store items of different types.</p>
  
  <p>Here's an example showing what I'd like to do:</p>
  
  <pre><code>Class C
  {
  };
  
  C c1;
  C c2;
  C c3;
  
  std::tuple&lt;C&gt; tup1(c1);
  std::tuple&lt;C, C&gt; tup2(c1, c2);
  std::tuple&lt;C, C, C&gt; tup3(c1, c2, c3);
  
  container_type container(tup1, tup2, tup3);
  </code></pre>
  
  <p>Is there any container that works in this way? If not, is there a way to create one?</p>
  
  <p>I'd like something that overloads <code>operator[]</code> for fast random access.</p>