On Sunday, 11 December 2022 at 04:36:45 UTC, thebluepandabear wrote:
Hello,

I am not really understanding why rvalues cannot be passed to a 'ref' parameter, the explanation in the book about D I am reading was not clear:

"The main reason for this limitation is the fact that a function taking a ref parameter can hold on to that reference for later use, at a time when the rvalue
would not be available."

I didn't really understand what Ali meant by this statement, any help would be appreciated so this can be clarified.

Regards,
thebluepandabear


You can if you compile with: ``-preview=rvaluerefparam``

I personally think this preview should be enabled by default

I use it all the time


```D
struct vec2{ float x; float y;}

void pass(const ref vec2 pos)
{}

void main()
{
    pass( vec2(1,1) );
}
```


If you use dub:

```json
           "dflags": [
                "-preview=rvaluerefparam",
            ],
```

Reply via email to