tuple-like, pair-like

来自cppreference.com
< cpp‎ | utility‎ | tuple


 
 
 
 
template< class T >
concept tuple-like = /* 见下文 */;
(1) (C++23 起)
(仅用于阐述*)
template< class T >

concept pair-like =

    tuple-like<T> && std::tuple_size_v<std::remove_cvref_t<T>> == 2;
(2) (C++23 起)
(仅用于阐述*)
1) 类型 Tstd::remove_cvref_t<T> 是以下类型之一的特化时实现并满足仅用于阐述的概念 tuple-like(元组式):
(C++26 起)
2) pair-like(对偶式)对象是恰好有 2 个元素的 tuple-like 对象。

[编辑] 注解

tuple-like 类型实现了元组协议,即这种类型可以用于 std::getstd::tuple_elementstd::tuple_size

tuple-like 类型的元素可以通过结构化绑定进行绑定。

[编辑] 参阅

tuple-likepair-like 用于以下标准库组件:

构造新的 tuple
(公开成员函数) [编辑]
赋值一个 tuple 的内容给另一个
(公开成员函数) [编辑]
(C++20 移除)(C++20 移除)(C++20 移除)(C++20 移除)(C++20 移除)(C++20)
按字典顺序比较 tuple 中的值
(函数模板) [编辑]
确定 tupletuple-like 类型的公共引用类型
(类模板特化) [编辑]
确定 tupletuple-like 类型的公共类型
(类模板特化) [编辑]
(C++11)
通过连接任意数量的元组来创建一个tuple
(函数模板) [编辑]
(C++17)
以一个实参的元组来调用函数
(函数模板) [编辑]
以一个实参元组构造对象
(函数模板) [编辑]
构造新的 pair
(std::pair<T1,T2> 的公开成员函数) [编辑]
赋值内容
(std::pair<T1,T2> 的公开成员函数) [编辑]
subrange 转换到 pair-like 类型
(std::ranges::subrange<I,S,K> 的公开成员函数) [编辑]
选取 tuple-like 值组成的 view 和数值 N,产生每个元组的第 N 个元素组成的 view
(类模板) (范围适配器对象) [编辑]