tuple-like, pair-like
From cppreference.com
C++
Utilities library
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::tuple
| Member functions | ||||
| Non-member functions | ||||
(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20) | ||||
| Helper concepts | ||||
tuple-like(C++23) | ||||
| Helper classes | ||||
(C++23) | ||||
(C++23) | ||||
| Deduction guides(C++17) |
template< class T > concept tuple-like = /* see below */; |
(1) | (since C++23) (exposition only*) |
template< class T > concept pair-like = |
(2) | (since C++23) (exposition only*) |
1) A type
T models and satisfies the concept tuple-like if std::remove_cvref_t<T> is a specialization of
| (since C++26) |
2)
pair-like objects are tuple-like objects with exactly 2 elements.[edit] Notes
tuple-like types implement the tuple protocol, i.e., such types can be used with std::get, std::tuple_element and std::tuple_size.
Elements of tuple-like types can be bound with structured binding.
[edit] See also
tuple-like and pair-like are used in the following standard library components:
constructs a new tuple (public member function) [edit] | |
assigns the contents of one tuple to another (public member function) [edit] | |
| (removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(removed in C++20)(C++20) |
lexicographically compares the values in the tuple (function template) [edit] |
determines the common reference type of a tuple and a tuple-like type (class template specialization) [edit] | |
| (C++23) |
determines the common type of a tuple and a tuple-like type (class template specialization) [edit] |
| (C++11) |
creates a tuple by concatenating any number of tuples (function template) [edit] |
| (C++17) |
calls a function with a tuple of arguments (function template) [edit] |
| (C++17) |
construct an object with a tuple of arguments (function template) [edit] |
constructs new pair (public member function of std::pair<T1,T2>) [edit]
| |
| assigns the contents (public member function of std::pair<T1,T2>) [edit]
| |
converts the subrange to a pair-like type (public member function of std::ranges::subrange<I,S,K>) [edit]
| |
takes a view consisting of tuple-like values and a number N and produces a view of Nth element of each tuple(class template) (range adaptor object)[edit] |