Namespaces
Variants

std::common_type<(类似元组)>

来自 zh.cppreference.net
 
 
 
 
定义于头文件 <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 的公共类型
(类模板特化)