std::move_only_function::operator=
Материал из cppreference.com
< cpp | utility | functional | move only function
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...)> )
|