veces me tienen estructuras como ésta -¿Cómo implementar operadores de igualdad C++ (in) para estructuras agregadas?
struct aggregate1 {
std::string name;
std::vector<ValueT> options;
size_t foobar;
// ...
};
- donde (des) igualdad se define simplemente como (des) igualdad de todos los miembros: lhs_name == rhs_name && lhs_options == rhs_options && lhs_foobar == rhs_foobar
.
¿Cuál es la "mejor" forma de implementar esto? (Best como en: (tiempo de ejecución-) Eficiencia, mantenibilidad, la legibilidad)
operator==
en términos deoperator!=
operator!=
en términos deoperator==
- implementaciones separadas para
==
y!=
- Como miembro o como funciones gratuitas?
cuenta que esta pregunta es sólo acerca de las operaciones de igualdad (en), como comparación (<
, <=
, ...) no tiene mucho sentido para tales agregados.
De acuerdo. Si aún tiene problemas con la eficiencia del tiempo de ejecución, podría considerar si es más probable que algunos miembros sean diferentes a los demás, y compararlos primero. –