Tôi đang cố gắng để vượt qua một biểu thức lambda đến một chức năng mà có một con trỏ hàm, điều này thậm chí có thể?Biểu thức lambda có thể được chuyển thành con trỏ hàm không?
Dưới đây là một số mẫu mã, Tôi đang sử dụng 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;
}
Biên dịch và chạy với gcc-4.5.1 trên Linux (nhưng không biên dịch trong 4.4.3, không có lambdas) – Cubbi