Namespaces
Variants

std::basic_common_reference<tuple-like>

Со ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (основные типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Утилиты программ
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в C++20)
 
 
Определён в заголовочном файле <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-подобных типов применяются к их типам элементов.

Пусть

  • 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 >> ... >

Пример

Смотрите также

определяет общий ссылочный тип группы типов
(шаблон класса)
определяет общий ссылочный тип двух pair ов
(специализация шаблона класса)