C++ operator overloaded instance analysis - complex example