- functional[meta header]
- std[meta namespace]
- function template[meta id-type]
- cpp11[meta cpp]
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
}
- std::swap[color ff0000]
- f(1)[link op_call.md]
- g(1)[link op_call.md]
2
1
- C++11
- Clang: 3.0 [mark verified]
- GCC: 4.3.6 [mark verified]
- Visual C++: ??