命名空间
变体
操作

std::experimental::ranges::tagged

来自 cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性 非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
通用实用程序库
实用程序组件
函数对象
元编程和类型特征
标记对和元组
                          
tagged
标签指定器
                                      
                          
 
std::experimental::ranges::tagged
 
定义在头文件 <experimental/ranges/utility>
template< class Base, TagSpecifier... Tags >

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

struct tagged;
(范围 TS)

类模板 tagged 扩展了类类型 Base(它公开派生自它),它是一个元组类类型,并添加了一组由标签指定器 Tags... 指定的命名访问器。这些标签按顺序应用:Tags... 中的第 i 个标签指定器对应于元组的第 i 个元素。

Tags... 中的标签指定器应该唯一。否则,行为未定义。

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

内容

[编辑] 成员函数

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

[编辑] 命名元素访问器

对于 Tags... 中的第 N 个标签指定器,其对应元素名称为 nametagged 提供如下名为 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
(函数) [编辑]

[编辑] 元组类访问

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

[编辑] 另请参阅

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