2012-04-24 71 views
5

Làm cách nào để mô tả bản đồ lambda? Tôi muốn có một bản đồ lambda sẽ được gọi trên sự kiện (giống như một cuộc gọi lại đơn giản). Loại lambda là hằng số.Tạo bản đồ lambdas bằng C++

+0

Bạn có nghĩa là 'std :: map' của chúng hay cái gì khác không? –

+0

Vâng, tôi có nghĩa là 'std :: map' nên chứa hàm lambda. –

+0

Tôi nghi ngờ rằng lambda _type_ thực sự là một "hằng số". Trong trường hợp này tất cả các lamdas sẽ thuộc về cùng một lớp lambda và do đó làm điều tương tự :). Có lẽ, chữ ký lambda là như nhau? – user396672

Trả lời

14

Sử dụng tiêu đề <functional> và lớp mẫu std::function. Điều này cho phép bạn chỉ định các đối tượng hàm với một chữ ký phương thức cố định.

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

Giả sử bạn chỉ mục các callbacks sử dụng một unsigned int, các cửa hàng đồ chức năng trên mà phải mất hai int và trả về một int.

+0

aha, cảm ơn rất nhiều vì phản hồi của bạn. Tôi sẽ thử nó ngay bây giờ. –

+0

vâng, đó là những gì tôi cần. cảm ơn một lần nữa. –