std::basic_common_reference<tuple-like>

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

两个 tuple-like 类型的公共引用类型是由它们的每对对应元素类型的公共引用类型组成的 std::tuple,其中各个 tuple-like 类型上的 cv 与引用限定符都会应用到它们的元素类型上。

给定

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

成员类型

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

示例

参阅

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