Здравствуйте, DiKeert, Вы писали:
DK>
DK>app.registrySlot( (void (Widget::*)()) (&TestWindow::whenWindowClose), ON_CLOSE);
DK>app.registrySlot((void (Widget::*)())(&TestWindow::whenWindowPaint), ON_PAINT);
DK>return app.run();
DK>[/ccode]
Главное "уродство" в том, что это не всегда правильно:
#include "stdio.h"
struct Widget {};
struct Helper {};
struct TestWindow : Widget, virtual Helper
{
void whenWindowPaint(void) {}
};
int main()
{
printf(
"%d %d\n",
sizeof(void (Widget::*)()),
sizeof(&TestWindow::whenWindowPaint));
(void (Widget::*)())(&TestWindow::whenWindowPaint);
return 0;
}
DK>Это конечно круто, но может кто подскажет вариант по красивше?
Boost.Signals