yo estaba tratando de crear un vector de lambda, pero fracasaron:¿Por qué no puedo crear un vector de lambdas (del mismo tipo) en C++ 11?
auto ignore = [&]() { return 10; }; //1
std::vector<decltype(ignore)> v; //2
v.push_back([&]() { return 100; }); //3
hasta la línea # 2, que compiles fine. Pero la línea # 3 da compilation error:
error: no matching function for call to 'std::vector<main()::<lambda()>>::push_back(main()::<lambda()>)'
no quiero un vector de punteros a funciones o vector de objetos de función. Sin embargo, el vector de los objetos de función que encapsula real expresiones lambda, me funcionaría. es posible?
"No quiero un vector de punteros de función o vector de objetos de función." Pero eso es lo que pediste. Una lambda ** es ** un objeto de función. –
Muy relacionado: [¿Cuál es el tipo de lambda cuando se deduce con "auto" en C++ 11?] (Http://stackoverflow.com/q/7951377/514235). – iammilind