std::polymorphic<T, Allocator>::swap
constexpr void swap( polymorphic& 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 | - | объект polymorphic, с которым нужно обменять содержимое |
Исключения
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/polymorphic/swap