Compiler Error C2865

'function' : illegal comparison for handle_or_pointer

You can compare references to Classes and Structs or managed reference types only for equality to see if they refer to the same object (==) or to different objects (!=).

You cannot compare them for ordering because the .NET runtime might move managed objects at any time, changing the outcome of the test.