C++でtypenameキーワードを使うケースは以下の2つがある. テンプレートパラメータを宣言するとき テンプレート内にあるネストされた依存型名を指定するとき(例外あり) テンプレートパラメータの宣言時 ひとつはテンプレートパラメータを宣言するとき. template void f(T t); これは,以下のようにtypenameの代わりにclassを使った場合でも同じ意味となる. template void f(T t); この場合,typenameとclassのどちらのキーワードを使うかは好みの問題となる. テンプレートにネストされた型の指定時 …