On Thu, Dec 4, 2008 at 10:37 AM, Brian <[EMAIL PROTECTED]> wrote: > Is it safe to cast a function(or delegate) into one that takes more > arguments, causing those arguments to be ignored? > Example: > > void fn() { > } > > auto fptr = cast(void function(int, int))&fn; > fptr(1, 2); > > // It seems to work with a simple test case, I'm just afraid of it > blowing up at me later on. >
No. According to the D ABI, the callee cleans the stack. So if you pass more parameters than the function expects, you'll end up trashing the stack by leaving extra values on it.