namespace std {
template <class R, class... ArgTypes>
void swap(function<R(ArgTypes...)>& x, function<R(ArgTypes...)>& y);
}
概要
2つのfunction
オブジェクトを入れ替える。
効果
x.swap(y)
戻り値
なし
例
#include <iostream>
#include <functional>
int ident(int x) { return x; }
int add(int x) { return x + 1; }
int main()
{
std::function<int(int)> f = ident;
std::function<int(int)> g = add;
// fとgを交換
std::swap(f, g);
std::cout << f(1) << std::endl; // add
std::cout << g(1) << std::endl; // ident
}
出力
2
1
バージョン
言語
- C++11
処理系
- Clang: 3.0 ✅
- GCC: 4.3.6 ✅
- Visual C++: ??