2012-04-24 2 views
5

Как я могу описать карту лямбда? Я хочу иметь карту лямбда, которая будет вызвана событием (как простой обратный вызов). Лямбда-тип является постоянным.Создание карты lambdas в C++

+0

Вы имеете в виду 'std :: map' из них или что-то еще? –

+0

Да, я имею в виду, что 'std :: map' должен содержать лямбда-функции. –

+0

Я сомневаюсь, что лямбда _type_ на самом деле является «постоянной». В этом случае все ламды будут принадлежать одному классу лямбда и, следовательно, делать то же самое :). Возможно, lambda-подписи одинаковы? – user396672

ответ

14

Используйте заголовок <functional> и класс шаблона std::function. Это позволяет вам указывать объекты функций с фиксированной сигнатурой метода.

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

Предполагая, что вы индексировать обратные вызовы, использующие unsigned int, указанные на карте магазины функции, которые принимают в двух int и возвращают int.

+0

aha, большое спасибо за ваш ответ. Я попробую это сейчас. –

+0

да, это то, что мне нужно. еще раз спасибо. –

Смежные вопросы