title: How to join type and mpl::vector into a new vector
body: <p>I use the following construct to create a mpl vector of types.</p>
  
  <pre><code>struct Struct1{
      typedef int type;
  };
  struct Struct2{
      typedef float type;
  };
  template&lt;typename T&gt; struct TypeReader{
      typedef typename T::type type;
  };
  
  int main()
  {
      typedef bm::vector&lt;Struct1,Struct2&gt; MPLVector;
      typedef bm::transform&lt;MPLVector, TypeReader&lt;bm::_1&gt;&gt;::type TypeList;
      static_assert(bm::equal&lt;TypeList, bm::vector&lt;int,float&gt; &gt;::value, "Is not same");
  }
  </code></pre>
  
  <p>So far this works as expected. Now what I would like to do is the following</p>
  
  <pre><code>struct Struct3{
      typedef bm::vector&lt;char,double&gt; type;
  };
  typedef bm::vector&lt;Struct1,Struct2,Struct3&gt; MPLVector;
  typedef bm::transform&lt;MPLVector, TypeReader&lt;bm::_1&gt;&gt;::type TypeList;
  static_assert(bm::equal&lt;TypeList, bm::vector&lt;int,float,char,double&gt; &gt;::value, "Is not same");
  </code></pre>
  
  <p>This does not work. So how do I need to change my MetaFunction struct that it will work with both, just a typedef and a mpl::vector?<br>
  Or if this is not possible would it be possible to do this if I change all type typedefs to mpl vectors?</p>