Returning value by ref does not create a ref. Is this intentional?
Tejas
notrealemail at gmail.com
Wed Jan 5 04:35:12 UTC 2022
```d
import std.stdio:writeln;
ref int func(return ref int a){
a = 6; // modifies a as expected
return a;
}
void main(){
int a = 5;
auto c = func(a); // I expected c to alias a here
c = 10; // Expected to modify a as well
writeln(a); // prints 6 :(
}
```
The [spec](https://dlang.org/spec/function.html#ref-functions)
states:
> Ref functions allow functions to return by reference, meaning
> that the return value must be an lvalue, and the lvalue is
> returned, not the rvalue.
Then why does the reference to `a` not get returned ?
More information about the Digitalmars-d-learn
mailing list