2010-11-09 15 views
7

C++ 03 $ 13.6/1- "[...] Si hay un candidato escrito por el usuario con los mismos parámetros nombre y tipos como una función integrada de operador candidato , la función de operador incorporada está oculta y no está incluida en el conjunto de funciones candidatas ".candidatos operador incorporados

No estoy seguro acerca de la intención de esta cita de la Norma. ¿Es posible definir una función candidata definida por el usuario que tenga el mismo nombre y tipo que un operador integrado?

p. Ej. el siguiente que es claramente incorrecto.

int operator+(int) 

¿Qué significa esta frase?

+1

no responde a la pregunta, pero relacionado: [ "¿Puedo definir una sobrecarga del operador que funcione con tipos incorporados/intrínsecos/primitivos?"] (Http://www.parashift.com/c++faq-lite/intrinsic-types.html#faq-26.10) –

+0

I pensar un mejor ejemplo mig ht sea "operador int + (int, int);" – Giffyguy

Respuesta

1

Simplemente elija uno de esos en 13.6. Al igual que

Para cada tipo de puntero o la enumeración 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); 

Así

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

sí. allí va... – Chubsdad

Cuestiones relacionadas