Rvalue references - The resolution
deadalnix
deadalnix at gmail.com
Sat May 4 15:03:44 PDT 2013
On Saturday, 4 May 2013 at 21:57:14 UTC, deadalnix wrote:
> On Saturday, 4 May 2013 at 21:48:25 UTC, Walter Bright wrote:
>> On 5/4/2013 2:22 PM, deadalnix wrote:
>>> I still think this is inferior to Rust's solution and like to
>>> see ref as a
>>> equivalent of the Rust burrowed pointer. It achieve the same
>>> safety at compile
>>> time instead at runtime, and incurs no extra complexity
>>> except in some very rare
>>> cases (when you have a function taking several arguments by
>>> ref and returning
>>> also by ref and the lifetime of the returned ref isn't the
>>> union of the lifetime
>>> of the ref parameters - a very specific case).
>>
>> As you say, D ref's are analogous to Rust's borrowed pointers,
>> and for the escaping ref problem, Rust requires additional
>> annotations (much like the 'scope ref' proposal).
>>
>> http://static.rust-lang.org/doc/tutorial-borrowed-ptr.html#returning-borrowed-pointers
>>
>> The runtime check is because Andrei & I really didn't like
>> requiring additional annotations.
>
> Where you miss the point, is that these annotations may be
> omitted (and they are most of the time). When nothing is
> specified, the lifetime of the returned reference is considered
> to be the union of the lifetime of parameters lifetime, which
> is what you want in 99% of cases.
Note : We may also choose the lack of explicit lifetime means
runtime check as proposed, instead of being an error.
More information about the Digitalmars-d
mailing list