Built-in candidatos operador
-
29-09-2019 - |
Pregunta
C ++ 03 $ 13.6 / 1- "[...] Si hay una candidato escrito por el usuario con el mismo nombre y los parámetros de tipos como un built-in función de operador candidato, el incorporado en función de operador está oculto y no está incluido en el conjunto de funciones candidatas ".
No estoy seguro acerca de la intención de esta cita de la Norma. ¿Es posible definir una función definida por el usuario candidato que tiene el mismo nombre y el tipo como un operador incorporado?
por ejemplo. el siguiente, que es claramente errónea.
int operator+(int)
Entonces, ¿qué significa esto cotización?
Solución
Sólo tiene que elegir uno de los de 13,6. Como
Por cada puntero o enumeración de tipo T, existen funciones de operador candidatos de la forma
bool operator<(T, T); bool operator>(T, T); bool operator<=(T, T); bool operator>=(T, T); bool operator==(T, T); bool operator!=(T, T);
Entonces
enum Kind { Evil, Good };
bool operator<(Kind a, Kind b) { ... }