std::move_only_function::operator=
来自 cppreference.cn
< cpp | 工具 | 函数对象 | 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,或者如果 other 为空,则销毁 *this 的目标(如果存在),通过 auto(std::move(other)).swap(*this)。在移动赋值后,other 处于有效状态,但值未指定。
3) 如果当前目标存在,则销毁它。调用后 *this 为空。
4) 将 *this 的目标设置为可调用对象 f,或者如果 f 是空函数指针、空成员函数指针或空的
std::move_only_function
,则销毁当前目标,如同执行 move_only_function(std::forward<F>(f)).swap(*this);。此重载仅在 move_only_function
从 F
构造函数参与重载决议时才参与重载决议。如果选择的构造函数调用格式错误或具有未定义行为,则程序格式错误或具有未定义行为。目录 |
[编辑] 参数
其他 | - | 另一个 std::move_only_function 对象,用于移动其目标 |
f | - | 一个可调用对象,用于初始化新目标 |
[编辑] 返回值
*this
[编辑] 注意
有意不要求移动赋值运算符为 noexcept,以便将来为支持分配器的 move_only_function
留出空间。
如果 move_only_function
可以从给定参数构造,则可以从 std::in_place_type<Fn> 赋值。
[编辑] 示例
本节不完整 原因:无示例 |
[编辑] 参阅
赋值一个新的目标 ( std::function<R(Args...)> 的公共成员函数) |