Member-assignment for std.container.Array!Struct
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Fri Jan 10 00:27:42 PST 2014
On 1/9/14 11:36 PM, Matthias Walter wrote:
> Hi,
>
> about 2 years ago I stopped using D for my projects since there were too
> many bugs that hindered me from making quick progress. Since I got
> several mails from bugzilla about those bugs being fixed I wanted to
> give it another try. Unfortunately, the following non-working code made
> me think to stop using it once again:
>
> struct S
> {
> int i;
> }
> Array!S array = [ S(0) ];
> array[0].i = 1;
>
> The reason is certainly that the change only affects a copy and not the
> true array-member. I remember that there was a discussion about sealed
> containers and returning references, etc.
>
> My question is now: Has there been any progress in this direction? I
> know that the design of ref's semantics is a nontrivial topic, but on
> the other hand in my opinion std.container.Array is completely useless
> if not even the above code works as one would expect!
It's an outrage, and this particular combination of (mis)features has
never got to my attention until now.
I've submitted https://d.puremagic.com/issues/show_bug.cgi?id=11889 on
your behalf. I've also sent out the fix
https://github.com/D-Programming-Language/phobos/pull/1845 for review.
(It's simple, but perhaps I'm missing some subtler issues.)
Apologies for this!
Andrei
More information about the Digitalmars-d
mailing list