Experimental library header <experimental/ranges/utility> - cppreference.com (original) (raw)

This header is part of the ranges library.

[edit] Utility components

Defined in namespace std::experimental::ranges

[edit] Tag concepts

Defined in namespace std::experimental::ranges

[edit] Tagged pairs

[edit] Synopsis

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 concept bool TagSpecifier = / see definition /;   template concept bool TaggedType = / see definition /;   template <class Base, TagSpecifier... Tags> requires sizeof...(Tags) <= std::tuple_size::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...>>;   }