Это скорее теоретический вопрос о интерпретации стандарта в одном конкретном случае, приведенном ниже: < /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
Неявно удаленная функция переопределяет удаленную виртуальную функцию ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение