http://d.puremagic.com/issues/show_bug.cgi?id=3866
Jonathan M Davis <jmdavisp...@gmx.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jmdavisp...@gmx.com --- Comment #4 from Jonathan M Davis <jmdavisp...@gmx.com> 2012-04-26 10:33:19 PDT --- It was my understanding that default arguments were just arguments that were inserted when a function was called and you didn't provide all of the arguments. They aren't actually part of the signature or type at all. As such, they are only known if you call the function directly. If you use a function pointer (or delegate), then all you have is the signature, so you don't have any default arguments. As such, nested functions with default arguments such as static auto foo(int a = 1) { return a; } and auto foo(int a = 1) { return a + b; } should work just fine, but as with any function, as soon as you take their address or turn them into a delegate variable, their default arguments are lost. And so having default arguments in something like auto foo = (int a = 1) { return a;}; auto bar = (int a) { return a;}; is completely pointless, because all you have is a variable which knows the signature of the function/delegate to call. The function itself can't be called directly, so it doesn't have any default arguments associated with it, and so there's no point in the default arguments even being legal. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------