https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93383
--- Comment #7 from Marek Polacek <mpolacek at gcc dot gnu.org> --- template <typename A> struct ctad_t { A a; }; template <ctad_t T> struct myclass { }; template <typename Something> constexpr auto myobject = ctad_t {Something::value}; template <typename Something> using thing = myclass<myobject<Something>>;