03-06-2015, 02:14 PM
Hello,
rules 11.1 and 11.2 disallow conversions between pointer to a function or incomplete type, and any other type:
What if the conversion happens for example in equality operator:
Following example from Rule 11.1 suggests it's also non-compliant:
rules 11.1 and 11.2 disallow conversions between pointer to a function or incomplete type, and any other type:
Code:
void (*fp1)(short);
void (*fp2)(int);
fp2 = fp1; /* Not-compliant - different function */
fp2 = 0x8000; /* Not-compliant - integer */
What if the conversion happens for example in equality operator:
Code:
fp2 == fp1; /* Compliant or Not-compliant ? */
fp2 != 0x8000; /* Compliant or Not-compliant ? */
Following example from Rule 11.1 suggests it's also non-compliant:
Code:
if ( fp2 != NULL ) /* Compliant - exception 1 (NULL) */