Namespaces
Variants

std::common_type<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)
Функции сравнения целых чисел
(C++20)(C++20)(C++20)    
(C++20)
Обмен и операции над типами
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Типы общей лексики
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



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

Общий тип двух tuple-like типов — это std::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_type_t<TTypes, UTypes>...> обозначает тип.

Типы членов

Тип члена Определение
type std:: tuple < std:: common_type_t < TTypes, UTypes > ... >

Пример

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

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