实验库头文件 <experimental/ranges/utility>
来自 cppreference.com
< cpp | header | experimental
此头文件是 范围 库的一部分。
内容 |
[编辑] 实用程序组件
在
std::experimental::ranges 命名空间中定义 | |
交换两个对象的的值 (自定义点对象) | |
用新值替换参数并返回其先前的值 (函数模板) |
[编辑] 标签概念
在
std::experimental::ranges 命名空间中定义 | |
指定一个类型是一个标签说明符 (概念) | |
指定一个类型表示一个标签说明符及其元素类型 (概念) |
[编辑] 带标签的配对
在
std::experimental::ranges 命名空间中定义 | |
用命名访问器增强一个元组类型的类型 (类模板) | |
带标签的 std::pair 的别名模板 (别名模板) | |
创建 tagged_pair 的便捷函数(函数模板) |
[编辑] 提要
namespace std { namespace experimental { namespace ranges { inline namespace v1 { namespace { constexpr /* unspecified */ swap = /* unspecified */; } template<MoveConstructible T, class U = T> requires Assignable<T&, U> constexpr T exchange(T& obj, U&& new_val) noexcept(/* see definition */); template <class T> concept bool TagSpecifier = /* see definition */; template <class F> concept bool TaggedType = /* see definition */; template <class Base, TagSpecifier... Tags> requires sizeof...(Tags) <= std::tuple_size<Base>::value struct tagged; template <TaggedType T1, TaggedType T2> using tagged_pair = /* see definition */; template <TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2> constexpr /* see definition */ make_tagged_pair(T1&& x, T2&& y); }}}} namespace std { template <class Base, class... Tags> struct tuple_size<experimental::ranges::tagged<Base, Tags...>>; template <size_t N, class Base, class... Tags> struct tuple_element<N, experimental::ranges::tagged<Base, Tags...>>; }