Which one of the compilers is right ?
class A { public: template void fun(void (*f)() = funPrivate) {} private: template
I have tested code in msvc13. This code works:
class A { template static void funPrivate() {} public: template void fun(void (*f)() = funPrivate) {} };