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
>

Reply via email to