std::experimental::ranges::tagged
< cpp | experimental | ranges
template< class Base, ranges::TagSpecifier... Tags > requires sizeof...(Tags) <= std::tuple_size<Base>::value |
(范围 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 的标签说明符 (类) |