Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

function::assign

公共成员函数  <functional>

template <class Fn, class Alloc>
  void assign (Fn&& fn, const Alloc& alloc);

赋值目标并分配空间
将一个新值赋给函数对象,替换它的当前target,并将alloc设置为内部分配器。

该函数的行为就像在堆栈上构造了一个新函数,通过转发fn和alloc给正确的构造函数,并使用*this交换新构造的对象:
function(allocator_arg,alloc,std::forward<Fn>(fn)).swap(*this)

☲  参数


fn
相同类型的function对象,或某些函数、函数指针、指向成员的指针或函数对象,转发给函数的构造函数。

☉  返回值



none

⇄ 数据竞争



对象被修改(包括它的target和分配器)。
如果fn是一个右值引用,函数可以修改fn。

☂ 异常安全性



如果fn是一个函数指针或指向可调用对象的reference_wrapper(或指向其中一个对象的函数对象), 它永远不会抛出异常(no-throw保证)
否则,它只能在目标可调用对象的复制构造或移动构造引发时抛出,或者在分配内存时抛出异常(如bad_alloc)时抛出。

🍄  另请参阅



function::operator= 赋值函数对象(公共成员函数)
function::function 构造函数包装器(公共成员函数)
swap(function) 交换目标(公共成员函数)

联系我们 免责声明 关于CandCplus 网站地图