Compiler Warning (level 1) C4383
When you add a user-defined instance override of the dereference operator in a managed type, you potentially override the ability of the type's dereference operator to return the handle's object. Consider writing a static, user-defined dereference operator.
For more information, see Handle to Object Operator (^) (C++ Component Extensions) and Tracking Reference Operator (C++ Component Extensions).
Also, an instance operator is not available to other language compilers via referenced metadata. For more information, see User-Defined Operators (C++/CLI).