public member function
<functional>

std::swap (function)

template <class Ret, class... Args>  void swap (function<Ret(Args...)>& x, function<Ret(Args...)>& y);
交换目标
x 中保存的 target 可调用对象y 中保存的进行交换。

其行为如同调用了 x.swap(y)

参数

x,y
function 对象,必须是同一类型(具有相同的签名,由模板参数 RetArgs... 描述)。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// swapping functions
#include <iostream>     // std::cout
#include <functional>   // std::function, std::plus

int main () {
  std::function<int(int,int)> foo,bar;
  foo = std::plus<int>();

  swap(foo,bar);

  std::cout << "foo is " << (foo ? "callable" : "not callable") << ".\n";
  std::cout << "bar is " << (bar ? "callable" : "not callable") << ".\n";

  return 0;
}

输出
foo is not callable.
bar is callable.


数据竞争

两个对象,xy,都被修改。

异常安全

无异常保证: 绝不抛出异常。

另见