Compiler Warning (level 3) C4281


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at 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