Сравнение объектов std :: tr1 :: function <>

Я пытался реализовать C # -подобную систему событий в C ++ с помощью шаблонов функций tr1, используемых для хранения функции, которая обрабатывает событие.

Я создал вектор, чтобы к этому событию можно было подключить несколько слушателей, т.е.

vector< function<void (int)> >  listenerList;

Я хотел бы иметь возможность удалить обработчик из списка, чтобы остановить слушателя, получающего события.

Итак, как мне найти запись в этом списке, которая соответствует данному слушателю? Могу ли я проверить, относится ли объект «функция» в списке к определенной функции?

Спасибо!

РЕДАКТИРОВАТЬ: Изучив подход boost :: signal, кажется, что он, вероятно, реализован с использованием системы токенов, как некоторые из вас предложили.Вот некоторая информация об этом, Наблюдатель сохраняет объект «Соединение», когда он присоединяется к событию, и этот объект соединения используется для отключения при необходимости. Таким образом, похоже, используете ли вы Boost или катите свой собственный с tr1, основной принцип тот же. то есть это будет немного неуклюже :)

Ответы на вопрос(7)

Ваш ответ на вопрос