У меня есть еще один вопрос об использовании функций. Например, у меня есть такое определение:Работа с ссылками на функции
typedef boost::function<bool (Entity &handle)> behaviorRef;
std::map< std::string, ptr_vector<behaviorRef> > eventAssociation;
Первый вопрос: как вставить значения в такой объект карты?
Я пробовал:
eventAssociation.insert(std::pair< std::string, ptr_vector<behaviorRef> >(eventType, ptr_vector<behaviorRef>(callback)));
Но ошибка:
no matching function for call to ‘boost::ptr_vector<boost::function<bool(Entity&)> >::push_back(Entity::behaviorRef&)’
И я undersatnd его, но не может сделать работоспособный код.
Второй вопрос - как назвать такие функции? Например, у меня есть один объект behaviorRef, как его называть boost :: bind с передачей моих собственных значений?
В качестве подсказки вы можете использовать 'std :: make_pair()' вместо прямого создания пары; это позволяет избежать необходимости записывать параметры шаблона пары. –
@ james-mcnellis спасибо за подсказку! – Ockonal