why local variables cannot be ref?

Rumbu rumbu at rumbu.ro
Mon Nov 25 05:51:31 UTC 2019


On Monday, 25 November 2019 at 03:07:08 UTC, Fanda Vacek wrote:
> Maybe I'm missing the thing, but I'm not able to declare local 
> ref variable even if simple workaround exists. 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

Probably you are coming from C#. There are no reference variables 
in D, but you can use pointers like in:

int* b = &a;
*b = 2;



More information about the Digitalmars-d-learn mailing list