Пространства имён
Варианты
Действия

tuple-like, pair-like

Материал из cppreference.com
< cpp‎ | utility‎ | tuple
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
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)
(только для пояснения*)
1) Тип T моделирует и соответствует концепту tuple-like, если std::remove_cvref_t<T> является специализацией
2) Объекты pair-like это объекты tuple-like, содержащие ровно 2 элемента.

[править] Примечание

Типы tuple-like реализуют протокол кортежа, т.е. такие типы могут использоваться с std::get, std::tuple_element и std::tuple_size.

Элементы типа tuple-like могут быть связаны с помощью структурного связывания.

[править] Смотрите также

tuple-like и pair-like используются в следующих компонентах стандартной библиотеки:

создаёт новый tuple
(public функция-элемент) [править]
присваивает содержимое одного tuple другому
(public функция-элемент) [править]
(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(удалено в C++20)(C++20)
лексикографически сравнивает значения в кортеже
(шаблон функции) [править]
определяет общий ссылочный тип tuple и tuple-like типов
(специализация шаблона класса) [править]
определяет общий тип tuple и tuple-like типов
(специализация шаблона класса) [править]
(C++11)
создаёт tuple, объединяя любое количество кортежей
(шаблон функции) [править]
(C++17)
вызывает функцию с кортежем аргументов
(шаблон функции) [править]
создаёт объект с кортежем аргументов
(шаблон функции) [править]
создаёт новый pair
(public функция-элемент std::pair) [править]
присваивает содержимое
(public функция-элемент std::pair) [править]
преобразует subrange в тип pair-like
(public функция-элемент std::ranges::subrange<I,S,K>) [править]
принимает view, состоящий из tuple-like значений, и числа N, и создаёт view из Nго элемента каждого кортежа
(шаблон класса) (объект адаптера диапазона) [править]