我承认标题很难读,而且不知道在这里提问合不合适。。。
但是还是希望好心人回答一下。 O(∩_∩)O 谢谢
声明一个返回不捕获参数的lambda的函数可以这样(在vs2012和gcc都可以编译通过):
#include
int (*Test ()) (void)
{
int x = 0;
auto ret = ]() {
return 123;
};
return ret;
}
int main()
{
auto ans = Test();
printf("%d\n", ans());
return 0;
}
```
但是如果Test函数中的ret想要按引用捕获参数,Test函数应该怎么声明啊?我试了半天没通过。。
我的需求是让ret能改变Test中的x的值。就是closure。。