Namespaces
Variants

std::move_only_function::operator=

С сайта ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования возможностей библиотеки (C++20)
Утилиты программ
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношения (устарело в 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++23)
Функциональный объект тождественности
(C++20)
Старые binder'ы и адапторы
(до 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 > при условии, что он может быть сконструирован из этого аргумента.

Пример

Смотрите также

присваивает новый целевой объект
(публичная функция-член std::function<R(Args...)> )