tuple-like, pair-like
来自cppreference.com
工具库
std::tuple
成员函数 | ||||
非成员函数 | ||||
(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20
前)(C++20)
|
||||
推导指引(C++17) | ||||
辅助概念 | ||||
tuple-like
(C++23)
|
||||
辅助类 | ||||
(C++23)
|
||||
(C++23)
|
||||
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
:
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 的共同引用类型 (类模板特化) |
|
(C++23)
|
确定二个 tuple 的共同类型 (类模板特化) |
(C++11)
|
通过连接任意数量的元组来创建一个tuple (函数模板) |
(C++17)
|
以一个实参的元组来调用函数 (函数模板) |
(C++17)
|
以一个实参元组构造对象 (函数模板) |
构造新的 pair ( std::pair<T1,T2>
的公开成员函数) |
|
赋值内容 ( std::pair<T1,T2>
的公开成员函数) |
|
(C++20)
|
将 subrange 转换到 pair-like
类型 ( std::ranges::subrange<I,S,K>
的公开成员函数) |
选取 tuple-like
值组成的 view
和数值 N,产生每个 tuple 的第 N 个元素的 view
(类模板) (范围适配器对象) |