Namespaces
Variants

std::indirect<T, Allocator>:: swap

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
constexpr void swap ( indirect & other ) noexcept ( /* see below */ ) ;
(since C++26)

Swaps the contents with those of other .

In the description below, swap_allocators refers to std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value .

Swaps the states of * this and other , exchanging owned objects or valueless states.

  • If swap_allocators is true , then executes using std:: swap ;
    swap ( alloc  , other. alloc  ) ;
    .
  • Otherwise, the allocators are not swapped.

If one of the following conditions is satisfied, the behavior is undefined:

  • swap_allocators is true , and Allocator does not satisfy the requirements of Swappable .
  • swap_allocators is false , and get_allocator ( ) == other. get_allocator ( ) is false .

Contents

Parameters

other - the indirect object to exchange the contents with

Exceptions

noexcept specification:
noexcept ( std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value
|| std:: allocator_traits < Allocator > :: is_always_equal :: value )

Example

See also

specializes the std::swap algorithm
(function template)