tuple-like, pair-like
来自cppreference.com
template< class T > concept tuple-like = /* 见下文 */; |
(1) | (C++23 起) (仅用于阐述*) |
template< class T > concept pair-like = |
(2) | (C++23 起) (仅用于阐述*) |
1) 类型
T
在 std::remove_cvref_t<T> 是以下类型之一的特化时实现并满足仅用于阐述的概念 tuple-like
(元组式):
(C++26 起) |
- std::pair
- std::tuple
- std::ranges::subrange
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 类型的公共引用类型 (类模板特化) | |
(C++23) |
确定 tuple 和 tuple-like 类型的公共类型 (类模板特化) |
(C++11) |
通过连接任意数量的元组来创建一个tuple (函数模板) |
(C++17) |
以一个实参的元组来调用函数 (函数模板) |
(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 (类模板) (范围适配器对象) |