// PR c++/118626 // { dg-do compile { target c++20 } } template struct _Nth_type { using type = _Nth_type; }; template struct variant { template static constexpr long __accepted_index = 0; template using __to_type = typename _Nth_type<_Np>::type; template using __accepted_type = __to_type<__accepted_index<_Tp>>; template> variant(_Up); }; template struct Node { Node(_Tp); }; template using Tree = variant>; using type = decltype(Tree{Node{42}}); using type = Tree;