What to do about default function arguments

deadalnix deadalnix at gmail.com
Thu Apr 26 04:10:30 PDT 2012


Le 26/04/2012 05:44, Walter Bright a écrit :
> 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?)

Maybe the problem is that type are considered to be the same when the 
mangling is the same. The default parameter is part of the type, isn't 
mangled (or hell will come on earth) and is covariant with the type with 
no default.


More information about the Digitalmars-d mailing list