Если программа пытается получить доступ ([defns.access]) к сохраненному значению объекта через glvalue, тип которого не похож ([conv.qual]) на один из следующих типов, поведение не определено:
(11.1) динамический тип объекта,
(11.2) тип, который является знаковым или беззнаковым типом, соответствующим динамическому типу объекта, или
(11.3) тип char, unsigned char или std::byte.
Но в соответствии с https://www.open-std.org/jtc1/sc22/wg21 ... 839r7.html и, следовательно, следующий фрагмент является UB:
Код: Выделить всё
T obj; // T is some arbitrary type
std::byte *ptr = reinterpret_cast(&obj);
for (std::size_t i = 0;i
Подробнее здесь: [url]https://stackoverflow.com/questions/79796861/does-this-approach-to-examine-object-representation-reuse-storage[/url]
Мобильная версия