template-declaration:
exporttemplate
<
template-parameter-list>
declaration
template-parameter-list:
template-parameter
template-parameter-list,
template-parameter
template-parameter:
type-parameter
parameter-declaration
type-parameter:
class identifier![]()
class identifier= type-id
typename identifier![]()
typename identifier= type-id
template<
template-parameter-list>
class identifier![]()
template<
template-parameter-list>
class identifier= template-name
template-id:
template-name<
template-argument-list>
template-name:
identifier
template-argument-list:
template-argument
template-argument-list,
template-argument
template-argument:
assignment-expression
type-id
template-name
explicit-instantiation:
template declaration
explicit-specialization:
template<
>
declaration