Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8014229
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 4, 20262026-06-04T19:52:05+00:00 2026-06-04T19:52:05+00:00

Possible Duplicate: Implementing comparision operators via 'tuple' and 'tie', a good idea? sometimes I

  • 0

Possible Duplicate:
Implementing comparision operators via 'tuple' and 'tie', a good idea?

sometimes I need to write some ugly functors
e.g.

lhs.date_ < rhs.date_ ||
lhs.date_ == rhs.date_ && lhs.time_ < rhs.time_ ||
lhs.date_ == rhs.date_ && lhs.time_ == rhs.time_ && lhs.id_ < rhs.id_ .....

it really annoyed me.
So I started avoiding that writing following:

std::make_tuple( lhs.date_, lhs.time_, lhs.id_ ) < 
    std::make_tuple(rhs.date_, rhs.time_, rhs.id_ );

and I am almost happy, but mind that I’m probably using tuples not by their purpose makes me worry.

Could you criticize this solution?
Or it’s a good practice?
How do you avoid such comparisons?

UPDATE:
Thanks for pointing on std::tie to avoid copying objects.
And thanks for pointing on duplicate question

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-04T19:52:07+00:00Added an answer on June 4, 2026 at 7:52 pm

    The declaration of std::tuple comparison operators states that:

    Compares lhs and rhs lexicographically, that is, compares the first elements, if they are equivalent, compares the second elements, if those are equivalent, compares the third elements, and so on.

    So what you are doing, other than having the possibility of creating unneeded temporaries (probably optimized away), seems ok to me.

    Note that equivalent means !( lhs < rhs ) && !( rhs < lhs ) and not lhs == rhs, that’s equality. Assuming equivalent and equality mean the same for your class, this would be ok. Note that this is no different than, for instance, accessing a set/map by key.

    In order to avoid the temporaries, you can use std::tie which makes a tuple of lvalue references to its arguments:

    std::tie( lhs.date_, lhs.time_, lhs.id_ ) < 
        std::tie( rhs.date_, rhs.time_, rhs.id_ );
    

    In a similar fashion, std::forward_as_tuple makes a tuple of rvalue references.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible Duplicate: StructureMap singleton usage (A class implementing two interface) I'm currently designing a
Possible Duplicate: Facebook's horizontal scrollbar in ticker & chat sidebar I am implementing a
Possible Duplicate: What is the fastest XML parser in PHP? I still need to
Possible Duplicate: Interface vs Base class A class implementing an interface has to implement
Possible Duplicate: Understanding Threads I have a public class that is implementing a Runnable
Possible Duplicate: UIScrollView. Any thoughts on implementing “infinite” scroll/zoom? I notice that in the
Possible Duplicate: UIScrollView. Any thoughts on implementing “infinite” scroll/zoom? I have a UIScroll which
Possible Duplicate: How do I copy an object in Java? I need to copy
Possible Duplicate: Java: What is the difference between implementing Comparable and Comparator? Difference between
Possible Duplicate: UIScrollView. Any thoughts on implementing “infinite” scroll/zoom? I've got an UIScrollView and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.