Я работаю над небольшим графическим движком, и я хочу, чтобы его пересекли платформу (когда-нибудь).Я разрабатывал с последней версией MinGW и C ++ 0x.Для слушателей событий я использую лямбда-функции, хранящиеся в std :: map, которые будут вызываться при возникновении определенного события.С MinGW он работает очень гладко, но на днях, когда я попробовал его в Visual Studio (последняя версия), он не удался.
Я проверил тип лямбд, и даже если я определю две лямбды, чтобы они были одинаковоони получают разные типы (анонимное пространство имен :: и анонимное пространство имен :)).
Например, у меня есть эта std :: map для хранения слушателей прокрутки
std::map<int,void (*)(int p)> scrollListenerFunctions;
А затем я могу добавить слушателя, просто сделав:
addScrollListener([](int p){/* Do something here */});
Как ясказал, что это прекрасно работает в MinGW, но терпит неудачу в Visual Studio, есть ли способ сделать это, чтобы он работал в обоих и даже возможно ли сохранить лямбда-символы в VS atm?
Если вам нужно увидеть / нужно увидетьбольше кода вы можете найти здесь http://code.google.com/p/aotk/source/browse/ лямбда-карты расположены в window.h / window.cpp