On Sunday, 31 January 2016 at 17:21:54 UTC, Matt Elkins wrote:
I know I can mark an argument ref to require lvalues, so I'm
wondering whether there is an equivalent for rvalues; that is,
is there a way to specify that an argument to a function MUST
be an rvalue?
For example, in C++ I can do this:
[code]
void foo(int && x) {...}
foo(5); // Works fine
int y = 5;
foo(y); // Compile error; y is not an rvalue
[/code]
This functionality turns out to be really useful when dealing
with transferring ownership of resources.
I am also very interested in this. I just asked this question
today on SO
https://stackoverflow.com/questions/35115702/how-do-i-express-ownership-semantics-in-d