std::common_type<tuple-like>
来自 cppreference.cn
定义于头文件 <tuple> |
||
template< tuple-like TTuple, tuple-like UTuple > requires /* 见下文 */ |
(C++23 起) | |
两种 tuple-like
类型的共同类型是一个 std::tuple,它由两种类型的对应元素类型对的共同类型组成。
给定
-
TTypes
是由每个整数 i 在[
0,
std::tuple_size_v<TTuple>)
范围内通过 std::tuple_element_t<i, TTuple> 序列形成的包,并且 -
UTypes
是由每个整数 i 在[
0,
std::tuple_size_v<UTuple>)
范围内通过 std::tuple_element_t<i, 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>...> 表示一个类型。
[edit] 成员类型
成员类型 | 定义 |
类型
|
std::tuple<std::common_type_t<TTypes, UTypes>...> |
[edit] 示例
本节不完整 原因:无示例 |
[edit] 参阅
(C++11) |
确定一组类型的公共类型 (类模板) |
(C++23) |
确定两个 pair 的公共类型(类模板特化) |