https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98059

--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to CVS Commits from comment #2)
>     Apparently vec.h doesn't build with -std=c++20/gnu++20, since the
>     DR2237 r11-532 change.
>     template <typename T>
>     class auto_delete_vec
>     {
>     private:
>       auto_vec_delete<T> (const auto_delete_vec<T> &) = delete;


Ugh, I misread this as an assignment operator despite there being no operator=
there at all.

It's a copy ctor, and yes, it's invalid. Sorry.

>     };
>     which vec.h uses is invalid C++20, one needs to use
>       auto_vec_delete (const auto_delete_vec &) = delete;

The <T> is allowed on the parameter, it's only disallowed on the first one, so
this would be OK too:

     auto_vec_delete (const auto_delete_vec<T> &) = delete;

But the macro can't generate that, and there's no reason to prefer it.

Sorry for the noise  :-(

Reply via email to