Re[4]: указатель на под-член
От: Caracrist https://1pwd.org/
Дата: 17.12.09 14:20
Оценка:
Здравствуйте, tyomitch, Вы писали:


T>Кстати, в gcc (и вроде бы стандартом тоже) запрещены касты из int в (int C::*&); ради такого преобразования предыдущим отписавшимся в треде и пришлось городить чёрти-что из шаблонов и юнионов.


И правильно! Я как и все остальные тут создавал UB кастя в int и size_t
Использовать можно только intptr_t или ptrdiff_t,
иначе:
int mem = offsetAinC + offsetof(A,x) ;
int C::* p = (int C::*&) mem

на 64 битных указателях, захватит несколько неожиданный кусочек памяти...
~~~~~
~lol~~
~~~ Single Password Solution
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.