Intégré opérateurs candidats
-
29-09-2019 - |
Question
C ++ 03 13,6 $ / 1- « [...] En cas de candidat écrit par l'utilisateur avec le même le nom et les types de paramètres comme intégré candidat fonction de l'opérateur, la fonction intégrée de l'opérateur est caché et ne sont pas inclus dans l'ensemble des fonctions candidats. "
Je ne suis pas sûr de l'intention de cette citation de la norme. Est-il possible de définir une fonction candidate définie par l'utilisateur qui a le même nom et le type comme opérateur intégré?
par exemple. le ci-dessous qui est manifestement erronée.
int operator+(int)
Alors qu'est-ce que cela signifie de citation?
La solution
Il suffit de choisir l'un de ceux 13.6. Comme
Pour chaque type de pointeur ou énumération T, il existe des fonctions d'opérateur candidats de la forme
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) { ... }