例如,我可以将 lambda 函数定义为
auto f = [](double value) {double ratio = 100; return value * ratio;}
现在我想生成一个带有比率参数的函数并返回 lambda 函数,如
auto makeLambda(double ratio) { return [=](double value) {return value * ratio;}; }
怎么做?
最佳答案
使用 C++14 函数返回类型推导,应该可以工作。
在 C++11 中,您可以定义另一个 lambda(它可以推断返回类型),而不是一个函数(它不能):
auto makeLambda = [](double ratio) {
return [=](double value) {return value * ratio;};
};
如评论中所述,如果您特别想要一个功能,可以进一步包装:
auto makeLambdaFn(double ratio) -> decltype(makeLambda(ratio)) {
return makeLambda(ratio);
}
关于c++ - 如何返回一个 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24431751/