Duplicar posibles:
Implementing comparision operators via 'tuple' and 'tie', a good idea?utilizando make_tuple para la comparación
veces tengo que escribir algunas palabras funcionales feas
por ejemplo,
lhs.date_ < rhs.date_ ||
lhs.date_ == rhs.date_ && lhs.time_ < rhs.time_ ||
lhs.date_ == rhs.date_ && lhs.time_ == rhs.time_ && lhs.id_ < rhs.id_ .....
realmente me molestó.
Así que empecé a evitar que la escritura siguiente:
std::make_tuple(lhs.date_, lhs.time_, lhs.id_) <
std::make_tuple(rhs.date_, rhs.time_, rhs.id_);
y soy casi feliz, pero cuenta que probablemente estoy usando tuplas no por su propósito hace que me preocupe.
¿Podría criticar esta solución?
¿O es una buena práctica?
¿Cómo se evitan esas comparaciones?
ACTUALIZACIÓN:
Gracias por señalar el std :: lazo para evitar copiar objetos.
Y gracias por señalar en cuestión duplicado
'std :: make_tuple' hace copias de los objetos que pasa (a menos que use' std :: ref' o 'std :: cref') - para comparar objetos existentes _sin hacer copias, use' std :: forward_as_tuple' o 'std :: tie' en lugar de' std :: make_tuple'. – ildjarn
Si usa std :: tie en su lugar, es una muy buena práctica, hace que el operador