DIP 1016--ref T accepts r-values--Community Review Round 1

Dgame r.schuett.1987 at gmail.com
Fri Jul 20 10:08:03 UTC 2018


On Friday, 20 July 2018 at 09:39:47 UTC, Nicholas Wilson wrote:
> On Friday, 20 July 2018 at 09:03:18 UTC, Dukc wrote:
>> appending something (like .byRef or byRef!long, the latter 
>> making an implicit type conversion)
>
> That can't work: either it returns an expired stack temporary 
> (*very* bad), or allocates with no way to deallocate (bad).

What about something like this?

----
import std.stdio;

ref T byRef(T)(T value) {
     static T _val = void;
     _val = value;

     return _val;
}

void foo(ref int a) {
     writeln("A = ", a);
}

void main() {
     foo(42.byRef);
     foo(23.byRef);
}
----



More information about the Digitalmars-d mailing list