Follow-up from "add some switch defaults + some useless statements"
The following discussion from !827 (merged) should be addressed:
-
@graven started a discussion: How about
return std::make_tuple( totalTime(), m_user, m_kernel, m_elapsed ) < std::make_tuple( e.totalTime(), e.m_user, e.m_kernel, e.m_elapsed );
instead? (it makes 'self comparison' slightly more expensive, but that is presumably not the common case, and that should now be slightly faster)
Then, binary comparisons should preferably be done as
friend
functions so that they are symmetric wrt. conversions, so that would mean (inside the class scope!):friend bool operator<( const ChronoEntity& lhs, const ChronoEntity& rhs ) { return std::make_tuple( lhs.totalTime(), lhs.m_user, lhs.m_kernel, lhs.m_elapsed ) < std::make_tuple( rhs.totalTime(), rhs.m_user, rhs.m_kernel, rhs.m_elapsed ); }
Edited by Marco Clemencic