std::move_only_function::operator=
С сайта ru.cppreference.net
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...)>
)
|