std::indirect<T, Allocator>::swap
constexpr void swap( indirect& other ) noexcept(/* see below */); | (с C++26) |
Меняет содержимое на содержимое other.
В приведённом ниже описании swap_allocators означает std::allocator_traits<Allocator>::propagate_on_container_swap::value.
Меняет местами состояния *this и other, обменивая принадлежащие им объекты или состояния без значения.
- Если
swap_allocators— этоtrue, выполняетсяusingstd::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)
Пример
См. также
|
(C++26) | специализирует алгоритм std::swap (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/memory/indirect/swap