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/w/cpp/utility/tuple/common_type