我正在尝试使用嵌套函数创建函数闭包。在C ++中这样的事情是可能的吗?
#include<iostream>
#include<algorithm>
#include <functional>
double f1(double &x)
{
double f2 (double &y)
{
return (x*y);
}
// auto fptr = std::function<double(double)> = &f2();
//return fptr;
}
int main()
{
double x={10.0}, y={11.0};
std::function<double(double)> foo=&f1;
//auto res1 = f1(fptr(x));
return 0;
}
以下是lambda的示例。我想使用函数和函数返回指针(std :: function)而不是lambda。
#include<iostream>
#include <functional>
std::function<double(double)> f3(double x) {
return ( [x](double y) {return x*y;});
}
int main() {
double res1 = f3(10.0)(11.0);
std::cout<<res1;
return 0;
}