Compiler Warning (level 3) C4281

'operator ->' recursion occurred through type 'type'

Your code allows operator-> to call itself.

The following sample generates C4281:

// C4281.cpp
// compile with: /W3 /WX
struct A;
struct B;
struct C;

struct A
{
   int z;
   B& operator->();
};

struct B
{
   C& operator->();
};

struct C
{
   A& operator->();
};

void f(A p)
{
   int i = p->z; // C4281
}