Операторы сравнения должны быть не являющимися членами функциями с идентичными типами параметров и noexcept
Операторы сравнения должны быть не входящими в состав группы функциями с идентичными типами параметров и noexcept.
Операторы сравнения не должны сравнивать объекты различных типов. При передаче объектов различных типов в качестве аргументов оператору сравнения оператор должен иметь возможность преобразовать один аргумент в тип данных другого.
Функции-члены имеют неотъемлемое ограничение, что неявный параметр объекта (тот, на который ссылается this указатель) не может быть преобразован в другой тип данных. Чтобы при необходимости поддерживать преобразования типов данных, определите операторы сравнения как функции, не являющиеся членами.
Выражения сравнения являются фундаментальными операциями и не должны отличаться друг от друга. Это правило охватывает следующие операторы сравнения:
==
!=
<
<=
>
>=
Примечание
Объявить операторы сравнения как friend для обеспечения доступа к внутренним данным, аналогичным функции-члену. Такая практика допускается исключением из правила A11-3-1.
Средство проверки помечает операторы сравнения, определенные как функции-члены. Средство проверки также помечает операторы сравнения, не являющиеся членами, которые:
Сравнение неидентичных типов параметров, таких как class тип и int.
Не объявлены с помощью noexcept спецификатор.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Перегрузка |
| Категория: Обязательно, Автоматизировано |