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;
}

Reply via email to