When is a slice not a slice?
Philippe Sigaud via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jun 5 12:56:00 PDT 2014
> enum b = DataAndView(1);
> assert (!sameTail(b.data, b.view));
I suppose it's because enums are manifest constants: the value they
represent is 'copy-pasted' anew everywhere it appears in the code. So
for arrays and associative arrays, it means recreating a new value
each and every time.
In your case, your code is equivalent to:
assert (!sameTail(DataAndView(1).data,DataAndView(1).view));
And the two DataAndView(1), being completely separated, do not have
the same tail.
More information about the Digitalmars-d-learn
mailing list