You can give default values to template parameters for class templates (but not function templates).
template <class Elem = int> class Array; template <unsigned Size = 100> class String; |
If a template parameter has a default value, all parameters after it must also have default values. A template parameter can have only one default value.