https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104577
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2022-02-18 Summary|needs copy constructor to |needs copy constructor for |call method of class |class non-type template |non-type template parameter |parameter Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed, it is for more than just calling a method on the non-type template argument even. Here is testcase which shows that: struct S { constexpr S () = default; constexpr S (S &&) = delete; constexpr S (const S &) = delete; }; template <S s> struct i { int y = 1; }; int main () { return i <S { }>{}.y; }