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

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
We were using:
template <typename T>
struct S {
private:
  S<T> (const S<T> &) = delete;
  S<T> operator = (const S<T> &) = delete;
};
With the change we are using:
template <typename T>
struct S {
private:
  S (const S &) = delete;
  S operator = (const S &) = delete;
};
We could be using also:
template <typename T>
struct S {
private:
  S (const S<T> &) = delete;
  S<T> operator = (const S<T> &) = delete;
};
and it would be still valid C++20 (and is accepted), just the first form is
not, because after DR2237 one can't use S<T> () for the constructor.

Reply via email to