On Wed, Dec 2, 2020 at 3:08 PM Jakub Jelinek via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > Hi! > > 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; > }; > which vec.h uses is invalid C++20, one needs to use > auto_vec_delete (const auto_delete_vec &) = delete; > instead which is valid all the way back to C++11 (and without = delete > to C++98). > > Tested on x86_64-linux, ok for trunk?
OK. > 2020-12-02 Scott Snyder <s...@li-snyder.org> > > PR plugins/98059 > * vec.h (auto_delete_vec): Use > DISABLE_COPY_AND_ASSIGN(auto_delete_vec) instead of > DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>) to make it valid C++20 > after DR2237. > > --- gcc/vec.h.jj 2020-10-30 08:59:57.081496258 +0100 > +++ gcc/vec.h 2020-12-02 14:56:01.098938644 +0100 > @@ -1602,7 +1602,7 @@ class auto_delete_vec : public auto_vec > ~auto_delete_vec (); > > private: > - DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>); > + DISABLE_COPY_AND_ASSIGN(auto_delete_vec); > }; > > /* Conditionally allocate heap memory for VEC and its internal vector. */ > > Jakub >