Template arguments (C++ only)

There are three kinds of template arguments corresponding to the three types of template parameters:

A template argument must match the type and form specified by the corresponding parameter declared in the template.

To use the default value of a template parameter, you omit the corresponding template argument. However, even if all template parameters have defaults, you still must use the <> brackets. For example, the following will yield a syntax error:

template<class T = int> class X { };
X<> a;
X b;

The last declaration, X b, will yield an error.

Related information