Templates can have default type parameters. The compiler uses these default types when you don’t provide them explicitly in a template instantiation. For example:
template // default typesclass E { public: E( T1 t1, T2 t2 ) {m1=t1; m2=t2; } private: T1 m1; T2 m2;};
You instantiate a template with default type parameters like this:
int main(){ E e1(0,0);//OK, explicit types provided E e2('a','b');//OK, using default types}
Make sure that your template instance has a pair of empty angular brackets after the template’s name when you create a template instance that uses default type values.Omitting the empty pair of angular brackets, as in the following declaration, is an error:
E e3('a','c'); //compilation error; missing