The language can certainly work if the default template parameters are types; just like C is used to work when the types of variables by default do not match intin the absence of a type specifier. There would be some ambiguities to overcome, for example:
typedef int T;
template <T> class C;
, , . , , . , , ; , , , -, .
, ( C , ++), , , .