Сообщение Re[31]: offsetof() без UB от 28.03.2025 13:48
Изменено 28.03.2025 13:57 kov_serg
Re[31]: offsetof() без UB
Здравствуйте, rg45, Вы писали:
_>>Пока думаешь. Я говорю примерно про такое
R>Да идею-то я понял. Я не понимаю, каким образом тебе мешает то, что выражение &D::a имеет тип int A::*. Что для тебя изменилось бы, если бы тип был int D:*?
Еще вариант где мешает. Если бы был int D::* то
_>>Пока думаешь. Я говорю примерно про такое
R>Да идею-то я понял. Я не понимаю, каким образом тебе мешает то, что выражение &D::a имеет тип int A::*. Что для тебя изменилось бы, если бы тип был int D:*?
Еще вариант где мешает. Если бы был int D::* то
int* (*p1)(D*)=ptr_to<&D::a>; // я бы мог писать так
int* (*p2)(A*)=ptr_to<&D::a>; // а пиходится так
Re[31]: offsetof() без UB
Здравствуйте, rg45, Вы писали:
_>>Пока думаешь. Я говорю примерно про такое
R>Да идею-то я понял. Я не понимаю, каким образом тебе мешает то, что выражение &D::a имеет тип int A::*. Что для тебя изменилось бы, если бы тип был int D:*?
Еще вариант где мешает. Если бы был int D::* то
То есть что бы работало в общем виде придётся писать ptr_to<D,&D::a>
_>>Пока думаешь. Я говорю примерно про такое
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>