【发布时间】:2011-02-28 21:59:51
【问题描述】:
我正在尝试将一个 lambda 表达式传递给一个接受函数指针的函数,这可能吗?
这是一些示例代码,我使用的是 VS2010:
#include <iostream>
using namespace std;
void func(int i){cout << "I'V BEEN CALLED: " << i <<endl;}
void fptrfunc(void (*fptr)(int i), int j){fptr(j);}
int main(){
fptrfunc(func,10); //this is ok
fptrfunc([](int i){cout << "LAMBDA CALL " << i << endl; }, 20); //DOES NOT COMPILE
return 0;
}
【问题讨论】:
-
在 Linux 上使用 gcc-4.5.1 编译和运行(但在没有 lambdas 的 4.4.3 中不编译)
标签: c++ lambda c++11 function-pointers