Имя пользователя:
Пароль:
 

Название темы: Callback - Опять в раздумьях
Показать сообщение отдельно

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Ничего не могу сказать, кроме того, что я однозначно против таблиц диспечерезации. Сам использовал только первый вариант, потому что понятие callback в первый раз встретил именно с подбной реализацией. Если раздражает много писать (и параметры всё равно у всех одинаковые), то можно написать например такой шаблон:
Код: Выделить весь код
template <typename T> struct member_callback : callback
{
    typedef void (T::*ptr) (/*whatever*/);
    T *obj;
    ptr method;
    member_callback(T *o, ptr m) :
        obj(o),
        method(m)
    {}
    void fire(/*whatever*/)
    {
        (obj->*method)(/*whatever*/);
    }
};
Можно несколько таких шаблонов набросать, под различные параметры и возращаемые значения (тоже как параметры шаблона, разумеется).

Да и макросы не зря были придуманы...

-------
http://ivank.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:13, 25-05-2006 | #2

Название темы: Callback - Опять в раздумьях