Spec-Zone.ru › C++

std::basic_common_reference<tuple-like>

Определён в заголовке <tuple>
template< tuple-like TTuple, tuple-like UTuple,
          template<class> class TQual, template<class> class UQual >
    requires /* see below */
struct basic_common_reference<TTuple, UTuple, TQual, UQual>;
(начиная с C++23)

Общий ссылочный тип двух типов tuple-like — это std::tuple, состоящий из общих ссылочных типов всех соответствующих пар типов элементов обоих типов, с применением cv-квалификаторов и квалификаторов ссылок типов tuple-like к их типам элементов.

Пусть

  • TTypes — пакет, образованный последовательностью std::tuple_element_t<i,TTuple> для каждого целого числа i в [0, std::tuple_size_v<TTuple>), и
  • UTypes — пакет, образованный последовательностью std::tuple_element_t<i,UTuple> для каждого целого числа i в [0, std::tuple_size_v<UTuple>),

должны выполняться следующие ограничения:

  • TTuple или UTuple является специализацией std::tuple.
  • std::is_same_v<TTuple, std::decay_t<TTuple>> является true.
  • std::is_same_v<UTuple, std::decay_t<UTuple>> является true.
  • std::tuple_size_v<TTuple> равно std::tuple_size_v<UTuple> (TTuple и UTuple имеют одинаковое число элементов).
  • std::tuple<std::common_reference_t<TQual<TTypes>...,UQual<UTypes>>...> обозначает тип.

Типы-члены

Тип-член Определение
type std::tuple<std::common_reference_t<TQual<TTypes>...,UQual<UTypes>>...>

Пример

См. также

common_referencebasic_common_reference
(C++20)
определяет общий ссылочный тип для группы типов
(шаблон класса)
std::basic_common_reference<std::pair>
(C++23)
определяет общий ссылочный тип двух pair
(специализация шаблона класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/tuple/basic_common_reference

Spec-Zone.ru

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