On Saturday, 27 July 2013 at 06:58:04 UTC, Walter Bright wrote:
On 7/26/2013 12:45 PM, monarch_dodra wrote:
On Sunday, 29 January 2012 at 16:25:33 UTC, Peter Alexander
wrote:
As for D, I can't see anything in the standard that prevents
two pointers of
different types from pointing to the same location, but I
suspect it is an
assumption that is being made.
Resurrecting this old thread, maybe we'll get a better answer
this time. I too
am interested in knowing how D deals with pointer aliasing.
I'd like a bit more of an "official" or "factual" answer.
Although it isn't in the spec, D should be "strict aliasing".
This is because:
1. it enables better code generation
2. there are ways, such as unions, to get the other aliasing
that doesn't break strict aliasing
Thank you for the answer. I expected D to do strict aliasing for
the reasons you mentioned. This does come up with two follow up
question though:
1. Does strict aliasing apply to slices?
2. C++ uses 'char' as a 'neutral' type that can alias to
anything. What about D? Does char fill that role? Does ubyte?