2012-04-24 29 views
5

¿Cómo puedo describir un mapa de lambda? Quiero tener un mapa de lambda que se llamará en el evento (como una simple devolución de llamada). El tipo lambda es constante.Creando un mapa de lambdas en C++

+0

¿Te refieres a un 'std :: map' de ellos, o algo más? –

+0

Sí, quiero decir que 'std :: map' debe contener funciones lambda. –

+0

Dudo que lambda _type_ sea realmente una "constante". En este caso, todas las lamdas pertenecerían a la misma clase lambda y, por lo tanto, harían lo mismo :). Quizás, las firmas lambda son las mismas? – user396672

Respuesta

14

Utilice el encabezado <functional> y la clase de plantilla std::function. Esto le permite especificar objetos de función con una firma de método fija.

std::map< unsigned int, std::function<int(int,int)> > callbackMap; 

Suponiendo que el índice de devoluciones de llamada utilizando un unsigned int, el mapa de las tiendas anteriores funciones que toman en dos int y devolver una int.

+0

aha, muchas gracias por su respuesta. Lo intentaré justo ahora. –

+0

sí, eso es lo que necesito. gracias de nuevo. –