Namespaces
Variants

Experimental library header <experimental/ranges/utility>

From cppreference.net
Standard library headers
Experimental library headers
Execution P2300
<experimental/execution>
Filesystem TS
<experimental/filesystem>
Parallelism TS (v1, v2)
experimental/algorithm
experimental/execution_policy
experimental/exception_list
experimental/numeric
<experimental/simd>
experimental/task_block
Library Fundamentals TS (v1, v2, v3)
experimental/algorithm
<experimental/any>
experimental/array
experimental/chrono
experimental/deque
experimental/forward_list
<experimental/functional>
experimental/future
experimental/iterator
experimental/list
experimental/map
experimental/memory
<experimental/memory_resource>
experimental/numeric
<experimental/optional>
experimental/propagate_const
experimental/random
experimental/ratio
experimental/regex
experimental/scope
experimental/set
experimental/source_location
experimental/string
<experimental/string_view>
experimental/system_error
experimental/tuple
experimental/type_traits
experimental/unordered_map
experimental/unordered_set
experimental/utility
experimental/vector

Concurrency TS
experimental/atomic
experimental/barrier
experimental/future
experimental/latch
Ranges TS
Coroutines TS
experimental/coroutine
Networking TS
experimental/buffer
experimental/executor
experimental/internet
experimental/io_context
<experimental/net>
experimental/netfwd
experimental/socket
experimental/timer
Reflection TS
<experimental/reflect>

이 헤더는 ranges 라이브러리의 일부입니다.

목차

유틸리티 컴포넌트

다음 namespace에 정의됨 std::experimental::ranges
두 객체의 값을 교환
(customization point object)
인자를 새로운 값으로 대체하고 이전 값을 반환
(function template)

태그 개념

다음 네임스페이스에 정의됨 std::experimental::ranges
타입이 태그 지정자임을 명시함
(concept)
타입이 태그 지정자와 해당 요소 타입을 나타냄을 명시함
(concept)

태그된 페어

다음 네임스페이스에 정의됨 std::experimental::ranges
튜플과 유사한 타입에 이름 있는 접근자를 추가함
(클래스 템플릿)
tagged 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...>>;
}