Namespaces
Variants

tuple-like , pair-like

From cppreference.net
Utilities library
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) std:: remove_cvref_t < T > 是以下类型的特化时,类型 T 建模并满足概念 tuple-like
(C++26 起)
2) pair-like 对象是具有恰好 2 个元素的 tuple-like 对象。

注释

tuple-like 类型实现了 元组协议 ,即此类类型可与 std::get std::tuple_element std::tuple_size 配合使用。

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

参见

tuple-like pair-like 在以下标准库组件中使用:

构造新的 tuple
(公开成员函数)
将一个 tuple 的内容赋值给另一个
(公开成员函数)
(C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20)
按字典序比较 tuple 中的值
(函数模板)
确定 tuple tuple-like 类型的共同引用类型
(类模板特化)
确定 tuple tuple-like 类型的共同类型
(类模板特化)
(C++11)
通过连接任意数量的 tuple 来创建 tuple
(函数模板)
(C++17)
以 tuple 参数调用函数
(函数模板)
以 tuple 参数构造对象
(函数模板)
构造新的 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
(类模板) (范围适配器对象)