https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075
--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Reduced: template <typename T> struct vec { struct { T y; }; vec() = default; }; template <typename T> struct S { vec<T> value[2]; template<typename U> constexpr S(const U&); }; template<typename T> template<typename X> constexpr S<T>::S(const X&) { value[0] = vec<T>(); } S<float>m(0);