On Wednesday, 2 September 2015 at 04:04:54 UTC, Sergei Degtiarev wrote:
On Wednesday, 2 September 2015 at 02:50:30 UTC, Jonathan M Davis wrote:
is undefined behavior. So, don't do it.
I don't. Actually, I'm looking for opposite - to protect data, like it is a class with two methods, returning void[] and immutable(void)[] as memory buffer, which user of the class supposed to cast to desired type. I naively assumed that void[] to be cast to, say, int[]; and immutable(void)[] to immutable(int)[] respectively. Unfortunately, D cast notices no difference between these two types.
I seems a little bit too easy to to shoot yourself in the foot.

No, I think your design is unsafe because you're throwing away type information and returning void[], then telling the compiler not to worry about it.



And still,
  assert(&a == b);
  assert(a != *b);

How these two lines would look in assembler? Defined behavior or undefined behavior, I can't imagine that.

why don't you have a look?

bye,
lobo


Reply via email to