Because the value used to fill a template parameter can be any type, including primitive types, and not simply a class type.