подобный кортежу, подобный паре
С сайта ru.cppreference.net
template< class T >
concept tuple-like = /* see below */;
|
(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) (только для пояснения*) |
1) Тип
T моделирует и удовлетворяет концепции tuple-like, если std::remove_cvref_t<T> является специализацией
- std::array,
|
(начиная с C++26) |
- std::pair,
- std::tuple, или
- std::ranges::subrange.
2)
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
-го
элемента каждого кортежа
(шаблон класса) (объект адаптера диапазона) |