このコードは合法ですか?
extern "C" typedef void (ft_blah_c)();
/*extern "C++"*/ typedef void (ft_blah_cpp)();
extern "C" void fn_blah_c() {}
/*extern "C++"*/ void fn_blah_cpp() {}
ft_blah_c *g_Blah_c = fn_blah_cpp; // <--- ?
ft_blah_cpp *g_Blah_cpp = fn_blah_c; // <--- ?
同様の割り当てを持つ実際のコードがあり、問題なくコンパイルおよび実行されます(MSVC 2010)。