Namespaces
Variants

std::basic_common_reference<tuple-like(类元组类型)>

来自cppreference.net
 
 
 
 
定义于头文件 <tuple>
template< tuple-like TTuple, tuple-like UTuple,
          template<class> class TQual, template<class> class UQual >
    requires /* see below */
struct basic_common_reference<TTuple, UTuple, TQual, UQual>;
(从 C++23 开始)

两个 tuple-like 类型的公共引用类型是一个 std::tuple,它由两个类型中所有对应元素类型对的公共引用类型组成,其中 cv 和引用限定符按对应方式应用于类元组类型的元素类型上。

设

  • 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_reference_t<TQual<TTypes>..., UQual<UTypes>>...> 表示一个类型。

成员类型

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

示例

参见

确定一组类型的公共引用类型
(类模板)
确定两个 pair 的公共引用类型
(类模板特化)