tuple-like , pair-like
|
template
<
class
T
>
concept tuple - like = /* см. ниже */ ; |
(1) |
(начиная с C++23)
( только для демонстрации* ) |
|
template
<
class
T
>
concept pair - like = tuple - like < T > && std:: tuple_size_v < std:: remove_cvref_t < T >> == 2 ; |
(2) |
(начиная с C++23)
( только для демонстрации* ) |
T
моделирует и удовлетворяет концепции
tuple-like
, если
std::
remove_cvref_t
<
T
>
является специализацией
| (начиная с C++26) |
- std::pair ,
- std::tuple , или
- std::ranges::subrange .
pair-like
объекты являются
tuple-like
объектами ровно с 2 элементами.
Примечания
tuple-like
типы реализуют
протокол кортежа
, то есть такие типы могут использоваться с
std::get
,
std::tuple_element
и
std::tuple_size
.
Элементы
tuple-like
типов могут быть привязаны с помощью
структурированной привязки
.
Смотрите также
tuple-like
и
pair-like
используются в следующих компонентах стандартной библиотеки:
создает новый
tuple
(публичная функция-член) |
|
присваивает содержимое одного
tuple
другому
(публичная функция-член) |
|
|
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(удалено в C++20)
(C++20)
|
лексикографически сравнивает значения в кортеже
(шаблон функции) |
определяет общий ссылочный тип
tuple
и
tuple-like
типа
(специализация шаблона класса) |
|
|
(C++23)
|
определяет общий тип
tuple
и
tuple-like
типа
(специализация шаблона класса) |
|
(C++11)
|
создает
tuple
путем объединения любого количества кортежей
(шаблон функции) |
|
(C++17)
|
вызывает функцию с кортежем аргументов
(шаблон функции) |
|
(C++17)
|
создает объект с кортежем аргументов
(шаблон функции) |
создает новый
pair
(публичная функция-член
std::pair<T1,T2>
)
|
|
|
присваивает содержимое
(публичная функция-член
std::pair<T1,T2>
)
|
|
преобразует
subrange
в
pair-like
тип
(публичная функция-член
std::ranges::subrange<I,S,K>
)
|
|
принимает
view
состоящий из
tuple-like
значений и число N, и создает
view
N
-го
элемента каждого кортежа
(шаблон класса) (объект адаптера диапазона) |