>>14
func<A>とかfunc<B>とかは全部オーバーロードされた関数として
扱われるので、明示的にキャストなどが要るはず。
 ptr = (void(*)()) &func<A>;