Safe to throw away function arguments with cast?
Jarrett Billingsley
jarrett.billingsley at gmail.com
Thu Dec 4 09:38:06 PST 2008
On Thu, Dec 4, 2008 at 12:23 PM, Denis Koroskin <2korden at gmail.com> wrote:
> On Thu, 04 Dec 2008 18:37:10 +0300, Brian <digitalmars at brianguertin.com>
> 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.
>
> Try using type-safe alternatives:
>
> auto fptr = (int,int) {
> fn();
> }
>
That's only safe in the context of the declaring function, in D1 at least.
More information about the Digitalmars-d-learn
mailing list