Spec-Zone.ru › C++

подобный кортежу, подобный паре

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,
  • std::complex,
(начиная с 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
(открытая функция-член)
operator=
присваивает содержимое одного tuple другому
(открытая функция-член)
operator==operator!=operator<operator<=operator>operator>=operator<=>
(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(удалён в C++20)(C++20)
лексикографически сравнивает значения в кортеже
(шаблон функции)
std::basic_common_reference<tuple-like>
(C++23)
определяет общий ссылочный тип для типа tuple и типа tuple-like
(специализация шаблона класса)
std::common_type<tuple-like>
(C++23)
определяет общий тип для типа tuple и типа tuple-like
(специализация шаблона класса)
tuple_cat
(C++11)
создаёт tuple, объединяя любое количество кортежей
(шаблон функции)
apply
(C++17)
вызывает функцию с кортежем аргументов
(шаблон функции)
make_from_tuple
(C++17)
создаёт объект с помощью кортежа аргументов
(шаблон функции)
(конструктор)
создаёт новый pair
(открытая функция-член std::pair<T1,T2>)
operator=
присваивает содержимое
(открытая функция-член std::pair<T1,T2>)
operator PairLike
преобразует subrange в тип pair-like
(открытая функция-член std::ranges::subrange<I,S,K>)
ranges::elements_viewviews::elements
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API