Allow auto in function parameters with default arguments?

Artur Skawina art.08.09 at gmail.com
Mon Sep 10 03:34:24 PDT 2012


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).

   void func(int x, const foo = getFoo()) { }

etc would then also work.

artur


More information about the Digitalmars-d mailing list