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 angle 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.

