Ich versuche, einen Lambda-Ausdruck an eine Funktion übergeben, die einen Funktionszeiger nimmt, ist das überhaupt möglich? HierKann ein Lambda-Ausdruck als Funktionszeiger übergeben werden?
ist ein Beispielcode, ich bin mit 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;
}
Compiliert und läuft mit gcc-4.5.1 unter Linux (aber kompiliert nicht in 4.4.3, das keine lambdas hat) – Cubbi