Здравствуйте, Александр Шаргин, Вы писали:
АШ>Статья :
АШ>Делегаты на C++Автор(ы): Александр Шаргин
Дата: 19.03.2003
Делегаты в CLR удобны, типобезопасны и эффективны. Последнее время на форумах RSDN часто поднимается вопрос о том, можно ли реализовать делегаты с аналогичными свойствами, оставаясь в рамках "чистого" C++. Оказывается, это вполне возможно. В этой статье я покажу, как это сделать.
АШ>Авторы :
АШ>Александр Шаргин
АШ>Аннотация :
АШ>Делегаты в CLR удобны, типобезопасны и эффективны. Последнее время на форумах RSDN часто поднимается вопрос о том, можно ли реализовать делегаты с аналогичными свойствами, оставаясь в рамках "чистого" C++. Оказывается, это вполне возможно. В этой статье я покажу, как это сделать.
Я немного "обжегся", не посомтрев на реализацию. Используется dynamic_cast
C_METHOD_DELEGATE<TObj, TRet TEMPLATE_ARGS>* pMethodDel =
dynamic_cast<C_METHOD_DELEGATE<TObj, TRet TEMPLATE_ARGS>* >(pDelegate);
так чтo,народ, проверьте ключ компиляции /GR. Если он не стоит — будет генериться исключение. В моем случае оно лихо ловилось, а объект из списка не удалялся.
А вообще — спасибо автору.