title: Recursive data structure with variant
body: <p>In C++17, is it possible to declare something like this such that it compiles:</p>
  
  <pre><code>struct Foo;
  
  using Var = std::variant&lt;Type1, Type2, Foo&gt;; // uses Foo
  
  struct Foo {
      std::vector&lt;Var&gt; member; // uses Var
  }
  </code></pre>
  
  <p>This is a simplified example, but I need a recursive data structure like this.</p>