DIP 36: Rvalue References

Namespace rswhite4 at googlemail.com
Mon Apr 22 14:56:11 PDT 2013


> In a way I wish my not being polite would be the main 
> bottleneck for this. I've been extremely busy at work, then 
> preparing for DConf 2013, and last week has been quite 
> distracting what with the Boston bombings three miles away from 
> where we live and all that. It strikes me as odd to be 
> obligated to spend time on something just because someone else 
> did, and framed as impolite if I don't.
>
> That being said, I have made a pass through this DIP and I have 
> the following concerns about it.
>
> 1. It defines a new language feature instead of improving the 
> existing ones. At this point in the development of the 
> language, our preference should be putting the existing 
> features in good order.
>
> 2. The proposal is sketchy and does not give many details, such 
> as the lifetime of temporaries bound to scope ref objects.
>
> 3. The relationship with auto ref is insufficiently described, 
> e.g. there should be clarification on why auto ref cannot be 
> improved to fulfill the desired role.
>
> 4. Above all this is a new language feature and again we want 
> to resort to adding new feature only if it is clear that the 
> existing features are insufficient and cannot be made 
> sufficient. In particular we are much more inclined to impart 
> real, demonstrable safety to "ref" and to make "auto ref" work 
> as a reference that can bind to rvalues as well as lvalues.
>
>
> Andrei

I'm sorry that you take it so personally, but I know from 
experience that some topics often get forgotten or ignored if you 
don't ask about it more then once.
And that we have made so much effort should show that we work for 
D and not against it and that we don't want to annoy you.

But you are right, scope ref is in comparison to auto ref a new 
feature, but it is one with little sideeffects and minimized 
implementation effort.
And Jonathan described here 
(http://forum.dlang.org/thread/uswucstsooghescofycp@forum.dlang.org?page=2#post-mailman.293.1364249651.4724.digitalmars-d-learn:40puremagic.com) 
very well and in detail why auto ref is no solution for 
non-templates.
In short:
It cannot work the same way for non-templates as it does for 
template functions, because that would mean that non-templates 
are also doubled 2^n times.
And the way scope ref would work, would mean, that auto ref works 
different for templates and non-template functions.
But you'd better read Jonathan's answer.


More information about the Digitalmars-d mailing list