RCArray is unsafe

Zach the Mystic via Digitalmars-d digitalmars-d at puremagic.com
Mon Mar 2 14:12:35 PST 2015


On Monday, 2 March 2015 at 20:54:20 UTC, Walter Bright wrote:
> On 3/2/2015 12:42 PM, Walter Bright wrote:
> For D structs, that means, if there's a postblit, a copy must 
> be made. For D ref counted classes, a ref count increment must 
> be done.
>
> I was hoping to avoid that, but apparently there's no way.
>
> There are cases where this can be avoided, like calling pure 
> functions. Another win for pure functions!

It seems like the most common use case for passing a global to a 
parameter is to process that global in a pure way. You already 
have access to it in an impure function, so you could just access 
it directly. The good news is that from within the passed-to 
function, no further calls will treat it as global.



More information about the Digitalmars-d mailing list