实验性库头文件 <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 /* 未指明 */ swap = /* 未指明 */; } template<MoveConstructible T, class U = T> requires Assignable<T&, U> constexpr T exchange(T& obj, U&& new_val) noexcept(/* 见定义 */); template <class T> concept bool TagSpecifier = /* 见定义 */; template <class F> concept bool TaggedType = /* 见定义 */; template <class Base, TagSpecifier... Tags> requires sizeof...(Tags) <= std::tuple_size<Base>::value struct tagged; template <TaggedType T1, TaggedType T2> using tagged_pair = /* 见定义 */; template <TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2> constexpr /* 见定义 */ 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...>>; }