实验库头文件 <experimental/ranges/utility>
来自 cppreference.cn
< cpp | header | experimental
此头文件是ranges 库的一部分。
内容 |
[编辑] 实用工具组件
定义于命名空间
std::experimental::ranges | |
交换两个对象的值 (定制点对象) | |
用新值替换参数并返回其先前的值 (函数模板) |
[编辑] 标签概念
定义于命名空间
std::experimental::ranges | |
指定类型为标签指定符 (概念) | |
指定类型表示标签指定符及其元素类型 (概念) |
[编辑] 带标签的 pair
定义于命名空间
std::experimental::ranges | |
使用命名访问器扩充类似 tuple 的类型 (类模板) | |
带标签的 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...>>; }