__block __weak void (^ weak_recurseTreeNodes)(int a); void (^ strong_recurseTreeNodes)(int a) = ^ (int a) { }; the result file: Foo^ foo = dynamic_cast(bar); Foo* foo = dynamic_cast(bar); x = a ^ b; int main(Platform::Array^ /*args*/) { } void (*fun_ptr)(int) = &fun; typedef void (*foo)(void); void (*foo)(void);