'Auto can only be used for template function arguments' what?

Timon Gehr timon.gehr at gmx.ch
Wed Jun 27 03:58:08 PDT 2012


On 06/27/2012 07:27 AM, kenji hara wrote:
> 2012/6/27 Jonathan M Davis<jmdavisProg at gmx.com>:
>> On Wednesday, June 27, 2012 07:02:28 Mehrdad wrote:
>>> On Wednesday, 27 June 2012 at 04:26:08 UTC, Jonathan M Davis
>>>
>>> wrote:
>>>> And how would that work? auto ref duplicates the function. If
>>>> you pass it an lvalue, then it generates a ref version.
>>>
>>> Two solutions:
>>>
>>> - Turn 'auto ref' into 'ref', but simply have the compiler
>>> generate a copy for the caller if he wants to pass by value?
>>
>> That at least sounds like it would work. Walter may have a reason why it
>> doesn't though, since he's the one that said that he didn't think that it was
>> possible. Maybe he just didn't think of it, or maybe it causes some other
>> problem that I can't think of.
>
> After considering about 'auto ref', I was concluded that is an
> inconsistency of current language spec and we cannot fix it correctly.
>
> http://d.puremagic.com/issues/show_bug.cgi?id=8204
>
> Therefore, I have created a thread to suggest new 'auto ref' recently.
> http://forum.dlang.org/thread/CAFDvkcvf6G8Mc01Tds6ydXqCZbfp1q-a-oeFVk6BGEtwCiUAqg@mail.gmail.com
>
> Kenji Hara
>
>

How does it deal with this case?

auto ref id(auto ref arg){ return arg; }


More information about the Digitalmars-d mailing list