1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// PR c++/99885 // { dg-do compile { target c++17 } } template <auto const& A> struct Foo {}; template <auto const& A> struct Bar { constexpr auto foo() const -> Foo<A> { return {}; } }; constexpr int a = 1; constexpr Bar<a> bar; Foo foo = bar.foo(); // <-- CTAD failure