可能重复:
通过“元组”和“领带”实现比较运算符,好主意吗?
有时我需要写一些丑陋的仿函数,
例如
lhs.date_ < rhs.date_ ||
lhs.date_ == rhs.date_ && lhs.time_ < rhs.time_ ||
lhs.date_ == rhs.date_ && lhs.time_ == rhs.time_ && lhs.id_ < rhs.id_ .....
这真的让我很恼火。
所以我开始避免写以下内容:
std::make_tuple( lhs.date_, lhs.time_, lhs.id_ ) <
std::make_tuple(rhs.date_, rhs.time_, rhs.id_ );
我几乎很高兴,但请注意,我可能不是出于目的使用元组让我担心。
你能批评这个解决方案吗?
或者这是一个好习惯?
你如何避免这样的比较?
更新:
感谢您指向 std::tie 以避免复制对象。
并感谢您指出重复的问题