struct S1;

using V1 = std::variant<S1>;

struct S1
{
  std::vector<V1> m_v;
};

これ合法?