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