Comment créer une fonction lambda en utilisant boost ou la STL pour correspondre au paramètre boost::function
attendu par F
dans le troisième extrait de code de main
?
#include
#include
void F(int a, boost::function f) {
std::cout << "a = " << a << " f(a) = " << f(a) << std::endl;
}
bool G(int x) {
return x == 0;
}
int main(int arg, char** argv) {
// C++0x
F(123, [](int i) { return i==0; } );
// Using seperate function
F(0, &G);
// Comment puis-je le faire en place sans C++0x
F(123, /* créer une lambda ici pour correspondre */);
}
Je ne peux pas utiliser C++0x et je préfère éviter de créer plusieurs fonctions séparées. Je peux utiliser autre chose que boost::function
si cela aide, ma priorité est de créer la lambda de manière succincte.