Jonathan Jonathan - 1 year ago 63
C++ Question

No == operator found while comparing structs in C++

Comparing two instances of the following struct, I receive an error:

struct MyStruct1 {
Position(const MyStruct2 &_my_struct_2, const int _an_int = -1) :

std::string toString() const;

MyStruct2 my_struct_2;
int an_int;

The error is:

error C2678: binary '==' : no operator
found which takes a left-hand operand
of type 'myproj::MyStruct1' (or there
is no acceptable conversion)


Answer Source

In C++, structs do not have a comparison operator generated by default. You need to write your own:

bool operator==(const MyStruct1& lhs, const MyStruct1& rhs)
    return /* your comparison code goes here */
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download