Иногда у меня есть такие структуры, как эта -
struct aggregate1 {
std::string name;
std::vector<ValueT> options;
size_t foobar;
// ...
};
- где (in) равенство просто определяется как (in) равенство всех членов : lhs_name == rhs_name && lhs_options == rhs_options && lhs_foobar == rhs_foobar
.
Какой "лучший" способ реализовать это? (Лучше всего, как в: (Время выполнения-) Эффективность, ремонтопригодность, читаемость)
operator ==
в терминах operator! =
operator! =
в терминах operator = =
==
и ! =
Обратите внимание, что этот вопрос касается только операций (не) равенства, в качестве сравнения ( <
, <=
, ...) не имеет большого смысла для таких агрегатов.