#include // This is a try to cast a function .. typedef int (*int_function) (); typedef float (*float_function) (); typedef void (*void_function) (); int intReturn () { return 3; } float floatReturn () { return 3.1; } void voidReturn () { return; } int main () { int_function test_i; float_function test_f; void_function test_v; test_i = &intReturn; test_f = (float_function)&intReturn; int res = test_i(); float res2 = test_f(); cout << res << "\n" ; cout << res2 << "\n" ; test_i = (int_function)&floatReturn; res = test_i(); cout << res << "\n" ; }