Spec-Zone.ru › C++

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)

Пример

См. также

std::swap(std::polymorphic)
(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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API