Until now I only thought of std::tie()as useful for decomposing several return values of a function that is faking multiple return values by using std:tuple:
1 2 3 4 | bool a; SomeData b; std:tie(a, b) = get_a_b_as_tuple(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | structS { int n; std::string s; float d; bool operator<( const S& rhs) const { // compares n to rhs.n, // then s to rhs.s, // then d to rhs.d return std::tie(n, s, d) < std::tie(rhs.n, rhs.s, rhs.d); } }; |
Source: CppCon2015 / Presentations / Simple Extensible Pattern Matching With C++14.
Update:
As it seems, this technique is considered to be pretty standard now, look here. If you are interested in TMP (and param pack expansions ;) you'll find there some techniques to make such comparators more flexible.
1 comment:
Marvelous!
Post a Comment