The liabilities of binding rvalues to ref
Manu
turkeyman at gmail.com
Thu May 9 14:55:39 PDT 2013
On 10 May 2013 06:07, Rob T <alanb at ucora.com> wrote:
> On Thursday, 9 May 2013 at 19:43:25 UTC, Andrei Alexandrescu wrote:
>
>> On 5/9/13 3:39 PM, Rob T wrote:
>>
>>> So, if I understand correctly, auto ref for templates will end up doing
>>> exactly the same thing as auto ref for non-template functions? That
>>> would be perfect, otherwise it'll be terribly confusing.
>>>
>>
>> There would be clear restrictions on non-template functions, e.g. a
>> non-template cannot return auto ref.
>>
>> Andrei
>>
>
> OK I can understand that auto ref on return for a template function is
> something different, so disallowing auto ref on a regular function makes
> perfect sense to me.
>
It doesn't make sense though. You're creating an arbitrary restriction
because overloading an existing meaning doesn't apply (actually conflicts)
in this case.
auto is a template concept, it should not be applied here.
Refer to all the reasoning behind scope ref instead...
You can also create template functions with auto ref params that behave
> exactly like a non-template counter part by not specifying ref on the
> return, so it seems consistent and a sound solution from that perspective.
>
Umm, what if the non-template counterpart returns ref? Then it doesn't
behave the same.
D is a complex language, so stuff like this does take some getting used to,
> but it is very powerful and flexible, no two ways around it.
>
If this takes 'getting used to', you're basically admitting that it doesn't
make intuitive sense.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130510/e3c65c6b/attachment.html>
More information about the Digitalmars-d
mailing list