Я беспокоюсь о том, как я получаю адрес *этого может быть не определенным поведением из -за моего использования revetpret_cast.
Код: Выделить всё
#include
#include
#include
struct C {
C() {
std::cout
g++ -std=c++23 mre.cc
< /code>
, а затем запустив его 5 раз в моей системе Arch Linux, я получаю значения, которые кажутся разумными и полезными для моей цели: < /p>
$ ./a.out
140735517651991
$ ./a.out
140720816496503
$ ./a.out
140721435514407
$ ./a.out
140731546749575
$ ./a.out
140737158244279
< /code>
Но, только потому, что цифры кажутся разумными и нет никакого сбоя или других плохих вещей, конечно, не говорят мне, есть ли на самом деле какой -либо UB. Я бы признателен за объяснение того, почему Reinterpret_cast Если нет; Я бы признателен за объяснение почему бы и нет и предложение лучшего (не обум) способа сделать это.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-object
Мобильная версия