auto ref and non-templated functions

deadalnix deadalnix at gmail.com
Wed Dec 26 14:00:56 PST 2012


On Tuesday, 25 December 2012 at 14:09:13 UTC, Andrei Alexandrescu 
wrote:
> On 12/25/12 12:34 AM, Zhenya wrote:
>> On Tuesday, 25 December 2012 at 01:40:16 UTC, Peter Alexander 
>> wrote:
>>> On Tuesday, 25 December 2012 at 00:56:44 UTC, Peter Alexander 
>>> wrote:
>>>> On Monday, 24 December 2012 at 17:40:54 UTC, Jonathan M 
>>>> Davis wrote:
>>>>> And if that doesn't work, can we simply make it so that the 
>>>>> compiler
>>>>> automatically creates a variable when you pass an rvalue to 
>>>>> a
>>>>> non-templated
>>>>> auto ref function?
>>>>
>>>> I don't see any problems with this, but I admittedly haven't 
>>>> thought
>>>> too much about it.
>>>
>>> If there are no problems with this way, then what I want to 
>>> know is
>>> why the template version of auto ref wasn't implemented this 
>>> way. The
>>> way auto ref is currently implemented for templates is a bit 
>>> of a mess.
>> Maybe it's difficult to generate both versions because for the 
>> function
>> like this
>>
>> void foo(auto ref S s1,auto ref S s2,...,auto ref s10)
>>
>> compiler should generate 2^10 versions of function foo.
>
> The compiler will only generate as many versions as there are 
> compatible calls.
>
> Andrei

In such a case, this is incompatible with virtual method.


More information about the Digitalmars-d mailing list