Re: union { int (Foo::*cFunc ) (); void *void_func;}
От: rg45 СССР  
Дата: 04.02.14 12:59
Оценка: +1
Здравствуйте, Yotce, Вы писали:

Y>Не раз наталкиваюсь на токую запись

Y>...
Y>Чем грозит такое приведение типов?
Y>
Y>        union 
Y>        { 
Y>            int ( __stdcall IObject::*Method )( int, float );  
Y>            void  *void_func; 
Y>        };
Y>


Указатель на функцию-член может иметь размеры, отличные от указателя на данные со всеми вытекающими. Т.е. после преобразования туда-обратно ты не можешь рассчитывать на валидность указателя на функцию.
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.