https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101233
--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> --- Looks like the original testcase is indeed valid, but one needs to include <memory_resource> as well (for pmr::polymorphic_allocator). Reduced: template<class T, class U> struct A { A(T, U); }; template<class T, class U> using B = A<U, T>; using type = decltype(B{0, 0});