Just overload the == and != operators.
struct settings_type {
int one=10;
int two=20;
float three=30.0;
bool operator==(settings_type const & rhs) const {
return this->one == rhs.one
&& this->two == rhs.two
&& this->three == rhs.three;
}
bool operator!=(settings_type const & rhs) const {
return !(*this == rhs);
}
}
Then you can use
settings_type s1;
settings_type s2;
s1.one = 42;
if (s1 != s2)
// True
Pieter