|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
function::swap | ||||
(until C++17) | ||||
| Non-member functions | ||||
(until C++20) | ||||
| Helper classes | ||||
(until C++17) | ||||
| Deduction guides(C++17) |
void swap( function& other)noexcept; | (since C++11) | |
Exchanges the stored callable objects of*this andother.
Contents |
| other | - | function wrapper to exchange the stored callable object with |
(none)
#include <functional>#include <iostream> void foo(constchar* str,int x){std::cout<<"foo(\""<< str<<"\", "<< x<<")\n";} void bar(constchar* str,int x){std::cout<<"bar(\""<< str<<"\", "<< x<<")\n";} int main(){std::function<void(constchar*,int)> f1{foo};std::function<void(constchar*,int)> f2{bar}; f1("f1",1); f2("f2",2); std::cout<<"f1.swap(f2);\n"; f1.swap(f2); f1("f1",1); f2("f2",2);}
Output:
foo("f1", 1)bar("f2", 2)f1.swap(f2);bar("f1", 1)foo("f2", 2) swaps the targets of twostd::move_only_function objects(public member function of std::move_only_function)[edit] |