rvalues->ref args

Manu via Digitalmars-d digitalmars-d at puremagic.com
Fri Sep 12 18:43:26 PDT 2014


On 13 September 2014 03:14, monarch_dodra via Digitalmars-d <
digitalmars-d at puremagic.com> wrote:

> On Friday, 12 September 2014 at 16:48:28 UTC, Dmitry Olshansky wrote:
>
>> 08-Sep-2014 16:46, Manu via Digitalmars-d пишет:
>>
>>> Please can we move on a solution to this problem?
>>> It's driving me insane. I can't take any more of this! >_<
>>>
>>> Walter invented a solution that was very popular at dconf2013. I don't
>>> recall any problems emerging in post-NG-discussions.
>>>
>>> Ideally, we would move forward on a design for 'scope', like the
>>> promising (imo) proposal that appeared recently. That would solve this
>>> problem, and also many other existing safety problems, and even
>>> influence solutions relating to other critical GC/performance problems.
>>>
>>
>>
>> IMO just legalese auto ref for normal functions and you are all set.
>> The semantics end up to be pretty much the same as c++ const & does (not
>> duplicating the function, like current template-style auto ref).
>>
>
> Yeah, the whole function duplication thing is pretty bad. Auto ref should
> just create a wrapper that forwards, and the implementation always operate
> on references.
>
> With this approach in mind, auto ref for functions should be trivial, in
> thé sense that the function is compiled normally as a non template that
> takes refs, and the compiler only generates code/templates to capture r
> values.
>

Why the hack? Why not just take a local for the rvalue in the scope that it
appears?
Generating proxy functions and stuff just makes problems, like taking
function pointers of functions, and messes with the debuginfo in very
annoying ways. Quality debuginfo is super-important, but D gives it very
little attention; we need to move forward on that front, not backwards.

auto-ref is a disaster, please don't make it more pervasive.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20140913/f8638c75/attachment.html>


More information about the Digitalmars-d mailing list