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<подобные кортежам>
(C++23)
определяет общий тип ссылки для типа tuple и типа tuple-like
(специализация шаблона класса)
std::common_type<подобные кортежам>
(C++23)
определяет общий тип для типа tuple и типа tuple-like
(специализация шаблона класса)
tuple_cat
(C++11)
создаёт tuple путём конкатенации любого числа кортежей
(функция-шаблон)
apply
(C++17)
вызывает функцию с кортежем аргументов
(функция-шаблон)
make_from_tuple
(C++17)
создаёт объект с кортежем аргументов
(функция-шаблон)
(конструктор)
создаёт новую пару
(публичный член-функция std::pair<T1,T2>)
operator=
присваивает содержимое
(публичный член-функция std::pair<T1,T2>)
operator PairLike
(C++20)
преобразует 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/w/cpp/utility/tuple/tuple-like

Spec-Zone.ru

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