Неявно удаленная функция переопределяет удаленную виртуальную функциюC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Неявно удаленная функция переопределяет удаленную виртуальную функцию

Сообщение Anonymous »

Это скорее теоретический вопрос о интерпретации стандарта в одном конкретном случае, приведенном ниже: < /p>
struct B;

struct A {
virtual bool operator ==(const B&) const = delete;
};

struct B : A {
bool operator ==(const B&) const = default;
};
< /code>
Эта программа отклоняется от GCC, EDG, MSVC с < /p>

Ошибка: Недонстрированная функция переопределяет удаленную функцию "a :: operator ==" < /p>
< /blockquote>
https://en.cppreference.com/w/cpp/language/function:

Удаленная функция может быть переопределена только с помощью удаленных функций

Но на самом деле принимает программу с помощью
, но Clang. Дефолт «Оператор ==» неявно удален, потому что нет жизнеспособного «оператора ==» для базового класса 'a'

онлайн -демонстрация: https://gcc.godbolt.org/z/n83nge7dwобразно>

Подробнее здесь: https://stackoverflow.com/questions/795 ... l-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»