std::copyable_function::operator=
copyable_function& operator=( const copyable_function& other ); | (1) | (с C++26) |
copyable_function& operator=( copyable_function&& other ); | (2) | (с C++26) |
copyable_function& operator=( std::nullptr_t ) noexcept; | (3) | (с C++26) |
template< class F > copyable_function& operator=( F&& f ); | (4) | (с C++26) |
Присваивает std::copyable_function новую цель или уничтожает его цель.
1) Присваивает копию цели
other объекту *this, как если бы выполнялось auto(other).swap(*this).
2) Перемещает цель
other в *this или уничтожает цель *this (если она есть), если other пуст, посредством auto(std::move(other)).swap(*this). После перемещающего присваивания other находится в допустимом состоянии с неопределённым значением.
3) Уничтожает текущую цель, если она существует. После вызова
*this пуст.
4) Устанавливает вызываемый объект
f в качестве цели *this или уничтожает текущую цель, если f является нулевым указателем на функцию, нулевым указателем на функцию-член или пустым объектом std::copyable_function, как если бы выполнялось copyable_function(std::forward<F>(f)).swap(*this);. Эта перегрузка участвует в разрешении перегрузки только в том случае, если конструктор copyable_function из F участвует в разрешении перегрузки. Программа некорректна или имеет неопределённое поведение, если выбранный вызов конструктора некорректен или имеет неопределённое поведение.Параметры
| other | - | другой объект std::copyable_function, цель которого копируется или перемещается |
| f | - | вызываемый объект, которым инициализируется новая цель |
Возвращаемое значение
*this
Пример
См. также
| присваивает новую цель (открытая функция-член std::function<R(Args...)>) |
|
| заменяет или уничтожает цель (открытая функция-член std::move_only_function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/functional/copyable_function/operator%3D