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 ( /* см. ниже */ ) ;
(начиная с C++26)

Обменивает содержимое с содержимым other .

В приведенном ниже описании swap_allocators относится к std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value .

Обменивает состояниями * this и other , заменяя владеемые объекты или состояния без значения.

  • Если swap_allocators равно true , то выполняется using std:: swap ;
    swap ( alloc  , other. alloc  ) ;
    .
  • В противном случае аллокаторы не обмениваются.

Если выполняется одно из следующих условий, поведение не определено:

  • swap_allocators имеет значение true , и Allocator не удовлетворяет требованиям Swappable .
  • swap_allocators имеет значение false , и get_allocator ( ) == other. get_allocator ( ) имеет значение false .

Содержание

Параметры

other - объект indirect для обмена содержимым

Исключения

noexcept спецификация:
noexcept ( std:: allocator_traits < Allocator > :: propagate_on_container_swap :: value
|| std:: allocator_traits < Allocator > :: is_always_equal :: value )

Пример

Смотрите также

специализирует алгоритм std::swap
(шаблон функции)