Why can't I give a function's return type the scope storage class?
Meta
jared771 at gmail.com
Mon Mar 18 17:20:37 UTC 2019
On Saturday, 16 March 2019 at 17:59:41 UTC, Walter Bright wrote:
> On 3/15/2019 10:29 PM, Meta wrote:
>> Am I wrong in thinking that this is something one would want
>> to do? It seems like it would be useful for the callee to
>> enforce that its return value is assigned to a scope variable.
>
> Scope on function return values comes from the scope of any
> arguments passed to the function marked as 'return scope'.
> Scope on a function return with no such arguments is currently
> meaningless in D.
>
> To add such a feature, there woul'd need to be compelling use
> cases.
So to be clear, you *can* add scope to the return type of a
function, and it will propagate the shortest lifetime among any
parameters marked with `return` or `return scope` to the return
value? I don't think this is mentioned anywhere in the docs,
which is what confused me. I thought that scope on the return
type was either a no-op, or that it applied to the function
(despite being on the left-hand side). I *think* I can get the
effect that I want, given that's how it works. I'll play around a
bit and report back.
Also, I'd like to echo the request that you document this stuff.
What's already there is fairly useful, but obviously it's not
complete.
More information about the Digitalmars-d
mailing list