テンプレートだと、型情報を失わないが、
型ごとに関数を作るからコードのサイズが大きくなりやすい。
ポインタだと、型情報を失うが、
関数が一つだからコードのサイズは小さく済む。

両方の利点を取るために下の関数を内部で呼び出すだけのinline関数を作るのが良いと思う。
そうすれば使うほうは型情報を失わないし、関数は一つしか作らずに済むから

void funcPointer_2 (void **p); 
template <class X>inline void funcTemplate_1(X **p){
    funcPointer_2(p);
}