2012-04-24 47 views
5

Jak mogę opisać mapę lambda? Chcę mieć mapę lambda, która zostanie wywołana na zdarzeniu (tak jak zwykłe wywołanie zwrotne). Typ lambda jest stały.Tworzenie mapy lambdas w C++

+0

Masz na myśli "std :: map" z nich lub coś innego? –

+0

Tak, mam na myśli to, że 'std :: map' powinien zawierać funkcje lambda. –

+0

Wątpię, że lambda _type_ jest rzeczywiście "stała". W tym przypadku wszystkie lamdas należałyby do tej samej klasy lambda i dlatego robią to samo :). Być może podpisy lambda są takie same? – user396672

Odpowiedz

14

Użyj nagłówka <functional> i std::function szablonu. Pozwala to na określenie obiektów funkcji z ustaloną sygnaturą metody.

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

Zakładając, że wskaźnik wywołania zwrotne używając unsigned int powyższe przechowuje map funkcje, które odbywają się w dwóch int i zwracają int.

+0

aha, wielkie dzięki za odpowiedź. Wypróbuję to właśnie teraz. –

+0

Tak, właśnie tego potrzebuję. dzięki jeszcze raz. –