Template Parameters

Template parameter lists are syntactically similar to declarations, but do not support initializers. The syntax for parameters is defined by the grammar for Parameters:

Parameters ::= [ Parameter (';' Parameter)* ]
Parameter  ::= TypeId ID ArrayDecl* (',' ID ArrayDecl*)*
            |  'const' ID ArrayDecl* (',' ID ArrayDecl*)*

The Type and ArrayDecl non-terminals are defined in the section on declarations. In contrast to global and local declarations the parameter list should not end with a ";"-sign.

Except for constant parameters, all parameters are reference parameters (i.e. on instantiation call by reference semantics is used).

Examples