tuple-like , pair-like
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* ) |
T
models and satisfies the concept
tuple-like
if
std::
remove_cvref_t
<
T
>
is a specialization of
(since C++26) |
- std::pair ,
- std::tuple , or
- std::ranges::subrange .
pair-like
objects are
tuple-like
objects with exactly 2 elements.
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
.
See also
tuple-like
and
pair-like
are used in the following standard library components:
constructs a new
tuple
(public member function) |
|
assigns the contents of one
tuple
to another
(public member function) |
|
(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) |
determines the common reference type of a
tuple
and a
tuple-like
type
(class template specialization) |
|
(C++23)
|
determines the common type of a
tuple
and a
tuple-like
type
(class template specialization) |
(C++11)
|
creates a
tuple
by concatenating any number of tuples
(function template) |
(C++17)
|
calls a function with a tuple of arguments
(function template) |
(C++17)
|
construct an object with a tuple of arguments
(function template) |
constructs new
pair
(public member function of
std::pair<T1,T2>
)
|
|
assigns the contents
(public member function of
std::pair<T1,T2>
)
|
|
converts the
subrange
to a
pair-like
type
(public member function of
std::ranges::subrange<I,S,K>
)
|
|
takes a
view
consisting of
tuple-like
values and a number N and produces a
view
of N
th
element of each tuple
(class template) (range adaptor object) |