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/uswucstsooghescof...@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.

Reply via email to