Allow auto in function parameters with default arguments?

Timon Gehr timon.gehr at gmx.ch
Mon Sep 10 06:46:29 PDT 2012


On 09/10/2012 12:34 PM, Artur Skawina wrote:
> On 09/10/12 06:20, Andrej Mitrovic wrote:
>> It occurred to me that using a parameter with a default value that is
>> a function call could benefit from using auto:
>>
>> struct Foo(T) { }
>>
>> auto getFoo()
>> {
>>      return Foo!int();
>> }
>>
>> void func(int x, auto foo = getFoo()) { }
>>
>> Granted this is a simple case and might be overkill, but if the
>> function returns some complicated range type (or worse, a Voldemort
>> type) it might be hard or impossible to specify the type.
>
>     void func(int x, typeof(getFoo()) foo = getFoo()) { }
>
> But 'auto' is already allowed for function return types and that is a
> trickier case (you need function bodies to figure out the type) so
> making it also work for arguments shouldn't be a problem (language-wise).
>

It is a mere grammar issue. I assume the analyzer is already able to 
deal with it.

>     void func(int x, const foo = getFoo()) { }
>
> etc would then also work.
>
> artur
>

struct foo{

}



More information about the Digitalmars-d mailing list