title: In C++ given one std::variant type, can one add additional types to make another variant type?
body: <pre><code>#include &lt;string&gt;
  #include &lt;variant&gt;
  
  int main()
  {
      using variant_base = std::variant&lt; int, double &gt;;
  
      using variant_derived_and_flattened = std::variant&lt; std::string, variant_base &gt;;
      // the above does not produce the desired
      // std::variant&lt; int, double, std::string &gt;
      static_assert( std::is_same&lt; variant_base, variant_derived_and_flattened &gt;{} );
  }
  </code></pre>
  
  <p>The static_assert fails.</p>
  
  <p>I assume there is no way to do this and would appreciate a confirmation of this, but perhaps someone knows how to do this?</p>