Erhalten eines Ganzzahl (langen) Wertes, der die Adresse des aktuellen Objekts ohne UB darstellt
Posted: 25 Aug 2025, 01:33
Ich versuche, die Adresse eines Objekts (das aktuelle - *dieses < /code>) für die Verwendung eines Zufallsgenerators zu erhalten. Ich füge diese Adresse zusammen mit mehreren anderen Pseudo -zufälligen Quellen zu einem std :: Seed_Seq hinzu, mit dem ich dann meinen Generator säen habe. hier gültig ist.
Wenn nein; Ich würde mich über eine Erklärung des Warum nicht und einen Vorschlag für eine bessere (Nicht-UB-) Art und Weise schätzen.>
Code: Select all
#include
#include
#include
struct C {
C() {
std::cout
g++ -std=c++23 mre.cc
< /code>
und dann 5-mal auf meinem Arch-Linux-System auszuführen, erhalte ich Werte, die für meinen Zweck vernünftig und nutzbar erscheinen: < /p>
$ ./a.out
140735517651991
$ ./a.out
140720816496503
$ ./a.out
140721435514407
$ ./a.out
140731546749575
$ ./a.out
140737158244279
< /code>
Aber nur weil die Zahlen vernünftig erscheinen und es keinen Absturz oder andere schlechte Dinge gibt, sagen mir natürlich nicht, ob es hier tatsächlich irgendwelche UB gibt. Ich würde mich über eine Erläuterung freuen, warum Reinterpret_Cast
Wenn nein; Ich würde mich über eine Erklärung des Warum nicht und einen Vorschlag für eine bessere (Nicht-UB-) Art und Weise schätzen.>