下列关于函数模板的定义中,合法的是( )。
A.template class <T>T abs(T z) {return z<0 ?-z:z;}
B.template<typename T>T abs(T z) {return z<0 ?-z:z;}
C.template T<class T>abs(T z) {return z<0 ?-z:z;}
D.template T abs(Tz) {return z<0 ?z:z;}