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