I assume that you are trying to declare a type (you cannot declare a "template variable" without a specific type).
C ++ 03 does not have typedefs templates, you need to use struct as a workaround:
template <typename T> struct FuncPtr { typedef T (*Type)(T a); }; ...
C ++ 11 template aliases eliminate the struct workaround, but currently no compilers other than Clang really implement this.
template <typename T> typedef T (*FuncPtr)(T a);
source share