std::common_type<tuple-like>
Определён в заголовочном файле <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>...> |
Пример
См. также
|
(C++11) | определяет общий тип для группы типов (шаблон класса) |
|
(C++23) | определяет общий тип двух pair (специализация шаблона класса) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/tuple/common_type