why local variables cannot be ref?
Dukc
ajieskola at gmail.com
Mon Nov 25 09:00:49 UTC 2019
On Monday, 25 November 2019 at 03:07:08 UTC, Fanda Vacek wrote:
> Is this preferred design pattern?
>
> ```
> int main()
> {
> int a = 1;
> //ref int b = a; // Error: variable `tst_ref.main.b` only
> parameters or `foreach` declarations can be `ref`
> ref int b() { return a; }
> b = 2;
> assert(a == 2);
> return 0;
> }
> ```
>
> Fanda
It's okay, but I'd prefer an alias, because your snippet uses the
heap needlessly (it puts variable a into heap to make sure there
will be no stack corruption if you pass a pointer to function b()
outside the main() function)
More information about the Digitalmars-d-learn
mailing list