Пространства имён
Варианты
Действия

std::move_only_function::operator=

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
Объекты функции
Функции обёртки
(C++11)
(C++11)
Применение частичных функций
(C++20)(C++23)
(C++11)
Вызов функции
(C++17)(C++23)
Объект идентичности функции
(C++20)
Обёртки ссылок
(C++11)(C++11)
Прозрачные обёртки операторов
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Отрицатели
(C++17)
Искатели
Ограниченные компараторы
Старые привязки и адаптеры
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
(до C++17*)(до C++17*)
(до C++17*)(до C++17*)

(до C++17*)
(до C++17*)(до C++17*)(до C++17*)(до C++17*)
(до C++20*)
(до C++20*)
 
 
move_only_function& operator=( move_only_function&& other );
(1) (начиная с C++23)
move_only_function& operator=( const move_only_function& ) = delete;
(2) (начиная с C++23)
move_only_function& operator=( std::nullptr_t ) noexcept;
(3) (начиная с C++23)
template< class F >
move_only_function& operator=( F&& f );
(4) (начиная с C++23)

Присваивает новую цель std::move_only_function или уничтожает его цель.

1) Перемещает цель other в *this или уничтожает цель *this (если есть), если other пустой, эквивалентно auto(std::move(other)).swap(*this). После присваивания перемещением other находится в допустимом состоянии с неопределённым значением.
2) Оператор присваивания копированием удалён. std::move_only_function не соответствует CopyAssignable.
3) Уничтожает текущую цель, если она существует. *this после вызова пустой.
4) Устанавливает цель объекта *this в вызываемый f или уничтожает текущую цель, если f является нулевым указателем на функцию, нулевым указателем на функцию-элемент или пустым std::move_only_function, как если бы выполнялась move_only_function(std::forward<F>(f)).swap(*this);. Эта перегрузка участвует в разрешении перегрузки, только если конструктор move_only_function из F участвует в разрешении перегрузки. Программа некорректна или имеет неопределенное поведение, если выбранный вызов конструктора некорректен или имеет неопределённое поведение.

Содержание

[править] Параметры

other другой объект std::move_only_function для перемещения цели
f вызываемый объект для инициализации цели

[править] Возвращаемое значение

*this

[править] Примечание

Намеренно не требуется, чтобы оператор присваивания перемещением был noexcept, чтобы оставить место для move_only_function с учётом аллокатора в будущем.

move_only_function может быть присвоен из std::in_place_type<Fn>, если он может быть создан из этого аргумента.

[править] Смотрите также

присваивает новую цель
(public функция-элемент std::function<R(Args...)>) [править]