template-id: //汎関数、汎クラスの名前+汎パラメタ実引数をひとまとめにしたもの
template-name < template-argument-list(opt) >

template-name:
identifier

template-argument-list:
template-argument
template-argument-list, template-argument

template-argument:
assignment-expresion //これはなんだ?代入式って?
type-id
id-expression


explicit-instantiation:
[template] declaration
// 汎関数、汎クラスの複数回インスタンス化防止。コンパイラへの優しさ。

explicit-specialization: // 完全特殊化
[template] < > declaration
// specializationとは型パラメタに応じて一つ以上定義部を設けること。