Erro do compilador C2677
'operator' binário : nenhum operador global encontrado que receba o tipo 'type' (ou não há conversão aceitável)
Para usar o operador, você precisa sobrecarregá-lo para o tipo especificado ou definir uma conversão para um tipo para o qual o operador é definido.
O seguinte exemplo gera o erro 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
}