Re[31]: offsetof() без UB
От: kov_serg Россия  
Дата: 28.03.25 13:48
Оценка:
Здравствуйте, rg45, Вы писали:

_>>Пока думаешь. Я говорю примерно про такое


R>Да идею-то я понял. Я не понимаю, каким образом тебе мешает то, что выражение &D::a имеет тип int A::*. Что для тебя изменилось бы, если бы тип был int D:*?


Еще вариант где мешает. Если бы был int D::* то
  int* (*p1)(D*)=ptr_to<&D::a>; // я бы мог писать так
  int* (*p2)(A*)=ptr_to<&D::a>; // а пиходится так

То есть что бы работало в общем виде придётся писать ptr_to<D,&D::a>

ps: И тогда можно вместо offset спокойно использовать этот указатель, при желании преобразовав его в intptr_t
Отредактировано 28.03.2025 14:02 kov_serg . Предыдущая версия . Еще …
Отредактировано 28.03.2025 13:57 kov_serg . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.