Estoy trabajando en un pequeño proyecto de motor de gráficos que quiero que sea plataforma cruzada (algún día). Desarrollé con la última versión de MinGW y C++ 0x. Para los oyentes de eventos, utilizo las funciones lambda almacenadas en un std :: map que se invocará cuando ocurra un determinado evento. Funciona muy bien con MinGW, pero el otro día cuando lo probé en Visual Studio (última versión) falló.Tienda C++ 0x funciones lambda en std :: map/vector para uso posterior en Visual Studio
Inspeccioné el tipo de lambdas e incluso si defino que dos lambdas son exactamente iguales, obtienen diferentes tipos (espacio de nombre anónimo :: y espacio de nombre anónimo :).
Por ejemplo tengo este std :: mapa para almacenar los oyentes de desplazamiento
std::map<int,void (*)(int p)> scrollListenerFunctions;
Y entonces puedo añadir un detector con sólo hacer:
addScrollListener([](int p){/* Do something here */});
Como ya he dicho, esto funciona bien en MinGW pero falla en Visual Studio, ¿hay alguna manera de hacerlo así que funciona en ambos y es incluso posible almacenar lambdas en VS atm?
Si wnat/necesidad de ver más código se puede encontrar aquí http://code.google.com/p/aotk/source/browse/ los mapas lambda se encuentran en window.h/window.cpp
Muchas gracias. Lo tengo trabajando ahora. – Rickard