@trusted and return ref

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Mar 3 06:37:33 PST 2015


On 3/3/15 9:28 AM, Kagamin wrote:
> If one wants to prevent a leak, then counter can be wrapped
> ---
> struct Unsafe(T)
> {
>     private T _payload;
>     T payload() @system { return _payload; }
>     alias payload this;
> }
> ---
> And somehow disallow Unsafe template in safe function signatures, then
> having
> Unsafe!(int*) _counter;
> would be ok?

This is a pretty good idea actually. It's not foolproof (you still have 
to opt-in to this, the compiler doesn't force it), but it gives you a 
tool to ensure people aren't using it in an unsafe way without having to 
double-check every usage. I like it.

-Steve


More information about the Digitalmars-d-learn mailing list