devxlogo

Detect an Operator Overloading a Class

Detect an Operator Overloading a Class

How can you detect if a class overloads a particular operator when you don’t have the source for the class? You can define the operator globally so that it accepts all user defined types:

class no_operator {};class Any{public:   Any(...){cout

The above operator will be invoked for an add operation involving at least one UDT?if the operator + is not overloaded in the UDT. For example:

class Foo {public:   Foo(){}   Foo & operator +(const Foo& a)   {   cout

This can be detected as follows:

if(strcmp(typeid(FooObj+i).name(),"class Foo")==0)   cout

devx-admin

Share the Post: