Bir lambda ifadesini bir işlev işaretçisi alan bir işleve iletmeye çalışıyorum, bu mümkün mü? VC10 lambda özelliği kesinleşmiş sonra ancak, standart komitesi için vatansız lambdas verir dil eklemek vermedi -Bir lambda ifadesi, işlev işaretçisi olarak iletilebilir mi?
VC10 RTM#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'ta gcc-4.5.1 ile derler ve çalışır (ancak hiçbir lambda içermeyen 4.4.3'te derleme yapmaz) – Cubbi