2015-03-21 2 views
1

Я хочу использовать зЬй :: функцию в станде :: карте, следовать коду:Использования станда :: функции в станде :: Карта

#include <functional> 
#include <map> 

class MyClass { 
    ... 
    std::function<void()> Callback(); 
    std::map<std::string, Callback> my_map; 
    ... 
} 

станд :: Карта получит ключ и Т, но не знал, что ошибка в моем коде, ему нет доступа к функциям std :: map (insert, end, find ...)

Используя typedef, он работает. Но почему std :: function не работает?

I firts place: в чем проблема?

До: Как его решить? - образец кода пожалуйста = D;

Благодаря помощи по

ответ

10

Вы объявили Callback быть функцией (возвращение std::function), а не тип. Вам нужен тип, чтобы объявить, что вы храните на карте. Я думаю, вы хотите

typedef std::function<void()> Callback; 
+0

Спасибо, теперь я понял – user3854612

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