return type for 'identifier::operator –>' is recursive if applied using infix notation
The specified operator–>() function cannot return the same type, or a reference to the same type, for which it is defined.
The following example causes this warning:
class C
{
public:
C operator->(); // warning
C& operator->(); // warning
};