Встроенные операторы-кандидаты - PullRequest
7 голосов
/ 09 ноября 2010

C ++ 03 $ 13.6 / 1- "[...] Если есть пользовательский кандидат с такими же именами и типами параметров, что и встроенная функция-кандидат-оператор, то встроенная функция-операторскрыт и не входит в набор функций-кандидатов. "

Я не уверен насчет цели этой цитаты из Стандарта.Можно ли определить пользовательскую функцию-кандидат, которая имеет то же имя и тип, что и встроенный оператор?

, например, приведенное ниже, что явно неверно.

int operator+(int)

Так что же делаетэта цитата значит?

1 Ответ

1 голос
/ 09 ноября 2010

Просто выберите один из них в 13.6.Как и

Для каждого указателя или типа перечисления T существуют возможные операторные функции вида

bool operator<(T, T);
bool operator>(T, T);
bool operator<=(T, T);
bool operator>=(T, T);
bool operator==(T, T);
bool operator!=(T, T);

So

enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }
...