std::common_type<tuple-like>

来自cppreference.com
 
 
 
 
<tbody> </tbody>
在标头 <tuple> 定义
template< tuple-like TTuple, tuple-like UTuple > requires /* 见下文 */ struct common_type<TTuple, UTuple>;
(C++23 起)

两个 tuple-like 类型的公共类型是由它们的所有对应元素类型对的公共类型组成的 std::tuple

给定

  • TTypes[0std::tuple_size_v<TTuple>) 中的每个整数 i 对应的 std::tuple_element_t<i, TTuple> 的序列组成的包,
  • UTypes[0std::tuple_size_v<UTuple>) 中的每个整数 i 对应的 std::tuple_element_t<i, UTuple> 的序列组成的包,

需要满足以下约束:

  • TTupleUTuplestd::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>TTupleUTuple 的元素数量相同)。
  • std::tuple<std::common_type_t<TTypes, UTypes>...> 能够表示一个类型。

成员类型

成员类型 定义
type std::tuple<std::common_type_t<TTypes, UTypes>...>

示例

参阅

确定一组类型的公共类型
(类模板) [编辑]
确定两个 pair 的公共类型
(类模板特化) [编辑]