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...>>; }