Namespaces
Variants

std::move_only_function:: operator=

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until 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...)> )