std::experimental::ranges::tagged

来自cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
概念 (概念 TS)
范围 (范围 TS)
数学特殊函数 (数学特殊 TR)
 
 
通用工具库
工具组件
函数对象
元编程与类型特性
有标签的 pair 与 tuple
                                        
tagged
标签指定符
                                        
                                        
                                        
 
std::experimental::ranges::tagged
 
定义于头文件 <experimental/ranges/utility>
template< class Base, ranges::TagSpecifier... Tags >

    requires sizeof...(Tags) <= std::tuple_size<Base>::value

struct tagged;
(范围 TS)

类模板 tagged 将标签指定符 Tags... 所指定的具名访问器集合增设到其所公开派生的仿 tuple 类 Base 。按顺序应用标签: Tags... 中第 i 个标签指定符对应 tuple 的第 i 个元素。

Tags... 中的标签指定符应当是独一无二的。否则行为未定义。

不可能通过指向异于 Base 的任何基类的指针删除 tagged 的实例。

目录

[编辑] 成员函数

构造 tagged 对象
(公开成员函数) [编辑]
赋值 tagged 对象
(公开成员函数) [编辑]
交换二个 tagged 对象的内容
(公开成员函数) [编辑]

[编辑] 具名元素访问器

对于 Tags... 中对应元素名为 name 的第 N 个标签指定符, tagged 提供如下的名为 name 的具名访问器:

constexpr decltype(auto) name() &       { return std::get<N>(*this); }
constexpr decltype(auto) name() const & { return std::get<N>(*this); }
constexpr decltype(auto) name() &&      { return std::get<N>(std::move(*this)); }

[编辑] 非成员函数

tagged 对象特化 swap
(函数) [编辑]

[编辑] 仿 tuple 访问

获得 tagged 的大小
(类模板特化) [编辑]
获得 tagged 的元素的类型
(类模板特化) [编辑]

[编辑] 参阅

指定类型为标签说明符
(概念) [编辑]
有标签 std::pair 的别名模版
(别名模板) [编辑]
用于创建 tagged_pair 的便利函数
(函数模板) [编辑]
有标签 std::tuple 的别名模版
(别名模板) [编辑]
用于创建 tagged_tuple 的便利函数
(函数模板) [编辑]
用于 ranges::tagged 的标签说明符
(类) [编辑]