Erreur du compilateur C2677
binaire 'operator' : aucun opérateur global trouvé qui accepte le type 'type' (ou il n’existe aucune conversion acceptable)
Pour utiliser l'opérateur, vous devez le surcharger pour le type spécifié ou définir une conversion vers un type pour lequel l'opérateur est défini.
L’exemple suivant génère l’erreur C2677 :
// C2677.cpp
class C {
public:
C(){}
} c;
class D {
public:
D(){}
operator int(){return 0;}
} d;
int main() {
int i = 1 >> c; // C2677
int j = 1 >> d; // OK operator int() defined
}