rvalues->ref args

Dmitry Olshansky via Digitalmars-d digitalmars-d at puremagic.com
Sat Sep 13 01:02:54 PDT 2014


13-Sep-2014 05:43, Manu via Digitalmars-d пишет:
> On 13 September 2014 03:14, monarch_dodra via Digitalmars-d
> <digitalmars-d at puremagic.com <mailto: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.

Please stop bringing this silly argument.
It's an implementation detail, debug-info can be outputted as required 
obviously. For instance scope(exit) is also lowered to try/finally, yet 
you still should be able step through the right lines with debugger 
correctly no problem at all.

> 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.

It was just poorly implemented and only for templates. I don't see how 
having a different name would help us reach the same effect.

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list