Встроенные кандидаты оператора
-
29-09-2019 - |
Вопрос
C ++ 03 $ 13,6/1- [...] Если есть авторитетный кандидат с тем же именем и типами параметров, что и встроенная функция оператора кандидата, встроенная функция оператора скрыта и не включена в наборе функций кандидатов ".
Я не уверен насчет намерения этой цитаты из стандарта. Можно ли определить функцию кандидата, определенную пользователем, которая имеет одинаковое имя и тип, как встроенный оператор?
Например, ниже, что явно неправильно.
int operator+(int)
Так что же означает эта цитата?
Решение
Просто выберите одного из них в 13.6. Нравиться
Для каждого указателя или типа перечисления существуют функции оператора кандидата в форме
bool operator<(T, T); bool operator>(T, T); bool operator<=(T, T); bool operator>=(T, T); bool operator==(T, T); bool operator!=(T, T);
Так
enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }
Не связан с StackOverflow