std::function.swap
时间: 2024-03-17 22:37:54 浏览: 113
C++11中lambda、std::function和std:bind详解
5星 · 资源好评率100%
std::function.swap 是 C++ 标准库中 std::function 类的一个成员函数,用于交换两个 std::function 对象的内容。std::function 是一个通用的函数封装器,可以包装任意可调用对象(函数、函数指针、成员函数指针、lambda 表达式等),并提供一致的调用接口。
使用 std::function.swap 可以方便地交换两个 std::function 对象的内容,实现方式如下:
```cpp
void swap(std::function& other) noexcept;
```
其中,`other` 是另一个 std::function 对象,通过调用 swap 函数,可以将当前对象和 `other` 对象的内容进行交换。
使用示例:
```cpp
std::function<int(int)> func1 = [](int x) { return x * 2; };
std::function<int(int)> func2 = [](int x) { return x * 3; };
func1.swap(func2);
int result1 = func1(5); // 调用 func2,返回 5 * 3 = 15
int result2 = func2(5); // 调用 func1,返回 5 * 2 = 10
```
注意,std::function.swap 只交换两个对象的内容,并不会影响对象的类型或其他属性。
阅读全文