Namespaces
Variants

tuple-like , pair-like

From cppreference.net
Utilities library
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 > является специализацией
(начиная с C++26)
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 типа
(специализация шаблона класса)
определяет общий тип tuple и tuple-like типа
(специализация шаблона класса)
(C++11)
создает tuple путем объединения любого количества кортежей
(шаблон функции)
(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 -го элемента каждого кортежа
(шаблон класса) (объект адаптера диапазона)