как это реализовать, есть какие-нибудь предложения?
Т.е. как я это представляю,
есть шаблон замыкание:
template<typename T> struct Closure {
typedef void (*func)(T val, void *userdata);
func f;
void *userdata;
Closure()
{
f=NULL;
}
void operator()(T val)
{
if (f)
f(val, userdata);
}
};
есть скажем класс Window и у него событие MouseMove
class Window {
public:
Closure<...> MouseMove;
};
и есть класс Application который хочет назначить обработчик этого события
class Application {
public:
Application()
{
MouseMouve.f=OnMouseMove;
MouseMove.userdata=this;
}
private:
static void OnMouseMove(...);
};
проблемма в том что для разных типов событий(
т.е. MouseMove operator() будет вызываться с параметрами int,int,
CheckButtonChange будт вызываться с параметром bool)
Closure каждый раз придется описывать кучу раз, для различного количества параметров и для void.
можно ли это как то обойти?
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум 100 dynamic_cast'ов за 1 миллисекунду (2014)
- Форум Как класс преобразовать в структуру ? (2008)
- Форум Заготовка шаблонных методов (2013)
- Форум Generic comparator with templated accessor to elements (2015)
- Форум [C++] Специализация шаблонов (2011)
- Форум [крабокрабр] Придумались френды для плюсовых темплейтов (2011)
- Форум Как смержить дублирующийся код? (решение: использовать gold) (2014)
- Форум [С++] Наследование с шаблонами (2011)
- Форум Get*/Set* отдельными методами или одним, какой вариант более православный? (2016)
- Форум Alexandescu Modern C++... длинное название: странное противоречие (2020)