Вы можете сохранить boost::function
в векторе, если вы не используете std::find
.Так как вам, кажется, это нужно, вероятно, лучше всего обернуть функцию в ее собственный класс равенством.
class EventFun
{
int id_;
boost::function<...> f_;
public:
...
bool operator==(const EventFun& o) const { return id_==o.id_; } // you get it...
};
Обратите внимание, что для этого необходимо поддерживать id_
в здравом смысле (например, два разныхEventFun
s будет иметь различные id_
s и т. Д.).
Другая возможность - хранить boost::function
s с тегом, который клиент запомнит, и использовать для идентификации конкретной функции при его удалении.