On Tuesday, 14 January 2020 at 12:05:01 UTC, John Burton wrote:
After years of C++ I have become paranoid about any casting of pointers being undefined behavior due to aliasing so want to see if :-

FWIW, this is safe and portable in C++20:

https://en.cppreference.com/w/cpp/numeric/bit_cast


1) This is safe to do in D.
2) If not is there anything I can do to make it safe.
3) If not, what is the best approach?

What is legal in C, should in theory be legal in D unless the documentation states otherwise as the goal for D is to make porting C code to D easy. Hence, type punning through union should be ok.

I am not sure what the various D compilers do with aliasing, but allowing type punning through pointers can inhibit some optimizations.

Reply via email to