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 :-(