www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - `lvalueof` property on rvalues

reply Basile B. <b2.temp gmx.com> writes:
what about

```d
void fun(ref int);
fun(1.lvalueof);
```

previous work : https://wiki.dlang.org/DIP39

The `lvalueof` property could create a temporary variable if the 
exp it's used on is not already a lvalue, otherwise it would do 
nothing.
May 09 2022
parent reply Bastiaan Veelo <Bastiaan Veelo.net> writes:
On Monday, 9 May 2022 at 14:03:21 UTC, Basile B. wrote:
 [...] create a temporary variable if the exp it's used on is 
 not already a lvalue, otherwise it would do nothing.
That's what happens if you supply the `-preview=rvaluerefparam` compiler argument, right? Then this already works: ```d void fun(ref int i) {} void main() { fun(1); } ``` There is also `-preview=in`. So what is the advantage of having to add `.lvalueof`? -- Bastiaan.
May 12 2022
parent Basile B. <b2.temp gmx.com> writes:
On Thursday, 12 May 2022 at 08:06:14 UTC, Bastiaan Veelo wrote:
 On Monday, 9 May 2022 at 14:03:21 UTC, Basile B. wrote:
 [...] create a temporary variable if the exp it's used on is 
 not already a lvalue, otherwise it would do nothing.
That's what happens if you supply the `-preview=rvaluerefparam` compiler argument, right? Then this already works: ```d void fun(ref int i) {} void main() { fun(1); } ``` There is also `-preview=in`. So what is the advantage of having to add `.lvalueof`? -- Bastiaan.
Ok, I was not aware of that. It's would be indeed useless if D can already do that implictly.
May 12 2022