tuple-like, pair-like

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


 
 
工具库
语言支持
类型支持(基本类型、RTTI)
库功能特性测试宏 (C++20)
动态内存管理
程序工具
协程支持 (C++20)
变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)

 
 
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
(类模板) (范围适配器对象)