Re: Зацените уродливость конструкции:
От: Alexander G Украина  
Дата: 20.08.08 19:32
Оценка:
Здравствуйте, 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
Русский военный корабль идёт ко дну!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.