Making Templates Easier to Use
We always said that we need to provide the template arguments to the parameters of a template function or class. Now, in this section, we are going to see two features that C++ offers to make it easier to use templates.
These features are default template arguments and template argument deduction.
Default Template Arguments
Like function arguments, template arguments can also have default values, both for type and non-type template parameters.
The syntax for default template arguments is to add after the template identifier the equal, followed by the value:
template<typename MyType = int> void foo();
When a template provides a default value for a parameter, the user does not have to specify the parameter when instantiating the template. The default parameter must come after the parameters that do not have a default value.
Additionally, you can reference the previous template parameters when defining the default type for a subsequent template parameter.
Let's...