Здравствуйте, Alexander G, Вы писали:
AG>Здравствуйте, ononim, Вы писали:
O>> Применял и "Struct/class offsets" — не неявно, через макрос MSSDK FIELD_OFFSET.
AG>Забавно: явное применение этого по стандарту нелегально, легально через макро offsetof, которое, как там отмечено, обычно сделано именно так.
Для легального offsetof acc выдаёт warning'и при использовании с non-POD типами.
warning #4189-D: a non-POD class type used in offsetof
А вот gcc подменой макроса уже не проведёшь, он доступ по NULL пойнтеру отслеживает:
warning: invalid access to non-static data member 'Class::Member' of NULL object
warning: (perhaps the 'offsetof' macro was used incorrectly)
Но вместо 0 можно и другую константу использовать...
Здравствуйте, R.O. Prokopiev, Вы писали:
ROP>>>[] is symmetric
К>>Зачем?!
ROP>Элементарно. Индексное выражение простое, а "указательное" — сложное, с C-кастами.
ROP>Например, i[(A *)b] вместо ((A *)b)[i].
А после code review лицо не болело?
--
Sergey Chadov
... << RSDN@Home 1.2.0 alpha rev. 685>>