On 10 May 2013 08:50, Timon Gehr <timon.g...@gmx.ch> wrote: > On 05/09/2013 11:35 PM, Manu wrote: > >> ... >> >> >> I don't think this is entirely true, auto ref is a template concept, >> > > In the current implementation, but not necessarily.
It should stay that way. It's reasonable what it does in it's current implementation. that is, "automatic ref-ness", it selects the ref-ness of the argument >> automatically, at compile time, just like auto applied everywhere else >> (selects a type for instance, at compile time). >> > > auto was carried over from C and originally stands for local lifetime. It > does _not_ mean "apply type deduction here". Eh? 'local lifetime' doesn't sound like it has anything to do with 'apply type deduction here' to me; which is what D does. This concept doesn't >> make any sense applied to a non-template. It *IS* a ref as specified by >> the programmer, there's nothing 'automatic' about it. >> >> > Most keywords are poorly chosen. > Is this an argument to continue that trend? That said, I don't find this to be particularly true. Most things make reasonable sense. So to say it will do 'exactly the same thing' is a misunderstanding. I >> argue that 'auto ref' as applied to non-templates will only create >> confusion, it effectively re-enforces the type of confusion that you >> have just shown. >> >> This is the reasoning for the argument behind scope ref, which to my >> mind actually makes good sound sense, and should lead people to a proper >> understanding of what you are actually doing. >> Considering the key argument against 'scope ref' is that people don't >> want to require more attributes to make use of it, >> > > This is inaccurate. It's the most consistent argument against scope-ref.