Re[32]: offsetof() без UB
От: rg45 СССР  
Дата: 28.03.25 14:25
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Еще вариант где мешает. Если бы был 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


Твою мотивацию я понял. Тем не менее, несмотря на определенные неудобства, концептуально более чистым мне видится текущая имплементация, когда выражения &D::a и &A::a имеют один и тот же тип и одно и то же значение. В то же время, достаточно веских доводов для того, чтобы отстаивать свою позицию у меня нет. Скорее всего, это просто привычка и закреплённый временем и практикой стереотип.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 28.03.2025 14:26 rg45 . Предыдущая версия . Еще …
Отредактировано 28.03.2025 14:25 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.