#include <iostream>
#include <functional>
// 定义一个函数,接受 std::function 作为参数
void callFunction(std::function<void(int)> func, int value) {
func(value);
}
int main() {
// 使用 lambda 表达式创建一个 std::function 对象
std::function<void(int)> myFunction = [](int x) {
std::cout << "Value: " << x << std::endl;
};
// 调用函数并传递 std::function 对象
callFunction(myFunction, 42);
return 0;
}
std::function:这是 C++ 标准库中的一个类模板,可以存储和调用任何可调用对象(如普通函数、lambda 表达式、绑定表达式等)。它提供了一种统一的方式来处理不同类型的函数。
callFunction 函数:该函数接受一个 std::function<void(int)> 类型的参数,表示它可以接受一个以 int 为参数且返回类型为 void 的函数。然后调用传入的函数。
Lambda 表达式:在 main 函数中,我们使用 lambda 表达式创建了一个匿名函数,并将其赋值给 std::function<void(int)> 类型的变量 myFunction。这个 lambda 表达式接收一个整数参数并打印它的值。
调用 callFunction:最后,我们将 myFunction 和一个整数值传递给 callFunction,从而执行了 lambda 表达式中的逻辑。
上一篇:c++游戏编程
下一篇:回文数c++程序编写
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站