tuple-like, pair-like

来自cppreference.com
< cpp‎ | utility‎ | tuple
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(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)
 
std::tuple
成员函数
非成员函数
(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20)
推导指引(C++17)
辅助概念
tuple-like
(C++23)
辅助类
 
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
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 中的值
(函数模板)
确定二个 tuple 的共同引用类型
(类模板特化)
确定二个 tuple 的共同类型
(类模板特化)
(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,产生每个 tuple 的第 N 个元素的 view
(类模板) (范围适配器对象)