What to do about default function arguments

Nathan M. Swan nathanmswan at gmail.com
Wed Apr 25 21:00:04 PDT 2012


On Thursday, 26 April 2012 at 03:44:27 UTC, Walter Bright wrote:
> A subtle but nasty problem - are default arguments part of the 
> type, or part of the declaration?
>
>    See http://d.puremagic.com/issues/show_bug.cgi?id=3866
>
> Currently, they are both, which leads to the nasty behavior in 
> the bug report.
>
> The problem centers around name mangling. If two types mangle 
> the same, then they are the same type. But default arguments 
> are not part of the mangled string. Hence the schizophrenic 
> behavior.
>
> But if we make default arguments solely a part of the function 
> declaration, then function pointers (and delegates) cannot have 
> default arguments. (And maybe this isn't a bad thing?)

I don't think it's a bad thing: default arguments in the type 
system mean values in the type system.

NMS


More information about the Digitalmars-d mailing list