digitalmars.D - Allow auto in function parameters with default arguments?
- Andrej Mitrovic <andrej.mitrovich gmail.com> Sep 09 2012
- Timon Gehr <timon.gehr gmx.ch> Sep 10 2012
- Andrej Mitrovic <andrej.mitrovich gmail.com> Sep 10 2012
- "Mehrdad" <wfunction hotmail.com> Sep 10 2012
- Artur Skawina <art.08.09 gmail.com> Sep 11 2012
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.
Sep 09 2012
On 09/10/2012 06:20 AM, 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,
As parameter names are optional, foo is parsed as the parameter type in this case. What exact change do you propose?but if the function returns some complicated range type (or worse, a Voldemort type) it might be hard or impossible to specify the type.
Every type that you can get hold of a value of can be specified by the means of typeof.
Sep 10 2012
On 9/10/12, Timon Gehr <timon.gehr gmx.ch> wrote:Every type that you can get hold of a value of can be specified by the means of typeof.
Yeah but it's repetitive. typeof(exp) arg = exp;
Sep 10 2012
http://forum.dlang.org/thread/is9jmn$2ia5$1 digitalmars.com
Sep 10 2012
On 09/11/12 08:21, Mehrdad wrote:http://forum.dlang.org/thread/is9jmn$2ia5$1 digitalmars.com
Completely different issue. That one is about syntax sugar for template functions, while this one would just save the programmer some typing when declaring "normal" functions (by propagating the type of the default argument expression, which would make it possible to skip the redundant 'typeof(expr)' part). artur
Sep 11 2012









Timon Gehr <timon.gehr gmx.ch> 