Compiler Error C2818
Visual Studio 2013
application of overloaded 'operator ->' is recursive through type 'type'
A redefinition of the class member access operator contains a recursive return statement. To redefine the -> operator with recursion, you must move the recursive routine to a separate function called from the operator override function.