要在不使用模板类的情况下存储lambda函数,可以使用std::function来实现。
std::function是一个通用的函数包装器,可以存储任何可调用对象,包括函数、函数指针、成员函数指针和lambda函数等。
下面是一个示例代码,演示了如何使用std::function存储lambda函数:
#include
#include
int main() {
std::function lambda;
int factor = 2;
lambda = [factor](int x) {
return factor * x;
};
int result = lambda(5);
std::cout << "Result: " << result << std::endl;
return 0;
}
在这个示例中,我们首先定义了一个std::function对象lambda,它接受一个int类型的参数并返回一个int类型的结果。
然后,我们利用lambda表达式给lambda赋值,其中使用了一个外部变量factor。
最后,我们调用lambda函数并打印结果。
输出结果为:
Result: 10
通过使用std::function,我们成功存储了lambda函数,并且可以像普通函数一样调用它。
上一篇:不明确指定绑定点索引的多个UBO
下一篇:不模拟