Aviso do compilador (nível 2) C4285

O tipo de retorno para 'identifier::operator ->' é recursivo se aplicado usando a notação de infixação

A função operator->() especificada não pode retornar o tipo para o qual ela é definida ou uma referência ao tipo para o qual está definida.

O exemplo a seguir gera C4285:

// C4285.cpp
// compile with: /W2
class C
{
public:
    C operator->();   // C4285
   // C& operator->();  C4285, also
};

int main()
{
}