Time to kill T() as (sometimes) working T.init alias ?
Dan
dbdavidson at yahoo.com
Tue Dec 11 05:39:21 PST 2012
On Tuesday, 11 December 2012 at 13:22:42 UTC, monarch_dodra wrote:
> Anyways, opAssign is *definitely* necessary. Without it,
> assignment would be equivalent to aliasing, and you wouldn't
> have actual COW (both instances would end up modified). What's
> more, if the current object had a handle on another payload,
> you wouldn't release it, causing it to duplicate for no reason
> (but that's moot considering COW is already broken). In my
> example, it works because no-one actually *calls* opAssign.
>
Can you confirm this with an example? Again, I think default
opAssign calls postblit. postblit increments. In this example
everything looks fine without opAssign (except for the bug you
point out regarding S()).
http://dpaste.dzfl.pl/7fe03a43
> What you have to keep in mind is that a "triple COW" design
> would only make sense if you have functions that modify one of
> your 3 maps. If they are always modified together, it'd make no
> sense to use "triple COW".
>
I see.
> //----
> When everything is said and done, most of that code can be
> templated, or mixed-in.
If so, sounds like useful additions to phobos.
Thanks
Dan
More information about the Digitalmars-d
mailing list