подобный кортежу, подобный паре
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) (только для иллюстрации*) |
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) | лексикографически сравнивает значения в кортеже (шаблон функции) |
|
(C++23) | определяет общий ссылочный тип для типа 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>) |
|
|
(C++20) | принимает view, состоящий из значений tuple-like, и число N, а затем создаёт view из N-го элемента каждого кортежа(шаблон класса) (объект-адаптер диапазона) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/tuple/tuple-like