title: Convert std::variant<A, B> to std::variant<A, B, C>
body: <p>I have the following code:</p>
  
  <pre><code>std::variant&lt;A, B&gt; foo();
  std::variant&lt;A, B, C&gt; bar();
  std::variant&lt;A, B, C&gt; foobar(bool a) {
      if (a) {
          return foo();
      } else {
          return bar();
      }
  }
  </code></pre>
  
  <p>However, this doesn't compile on gcc:</p>
  
  <pre><code>error: could not convert ‘foo()’ from ‘variant&lt;A, B&gt;’ to ‘variant&lt;A,B,C&gt;’.
  </code></pre>
  
  <p>Is there an elegant way to convert <code>std::variant&lt;A, B&gt;</code> into <code>std::variant&lt;A, B, C&gt;</code>?</p>