http://wiki.dlang.org/DIP25
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Mon Dec 29 06:07:49 PST 2014
On 12/27/14 10:09 PM, Andrei Alexandrescu wrote:
> Walter and I have been working on revamping DIP25, which focuses on
> tightening the screws of ref. This should then simplify DIP69
> significantly.
>
> Please comment: http://wiki.dlang.org/DIP25
ref int hun() inout { return b; }
This doesn't make sense. inout cannot cast to mutable.
Other than that, there is an issue with taking ref mutable parameters.
For example, you cannot implement an increment function:
ref int increment(ref int x) { return ++x;}
marking x as inout makes it effectively const during the body of the
function, so such a function would be banned. I'm sure there are some of
these in some code somewhere, I wouldn't be surprised if phobos had some.
I like the idea of inferring lifetime based on inout, and I think that
connection is sound. But I don't like the idea of *requiring* inout to
qualify ref returns of parameters. It's too restrictive.
-Steve
More information about the Digitalmars-d
mailing list