Spec-Zone.ru › C++

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)

Пример

См. также

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

Spec-Zone.ru

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