typename

typename.png

意味

  1. テンプレート引数として 「型」を取ることを宣言する場合(型パラメータを宣言している)
  2. 後続する識別子が 「型名」ですよ、と知らせる働き

1.の場合"class" キーワードで置換できる

template<typename T> class Foo; // (A)
template<class T> class Foo; // (B)

上の二つは同じ働きである。
2.の役割はclassにはできないこと。
typenameは、従属名が従属型(dependent type)を表わすことをコンパイラに告げる。
もしtypenameがなかったら、コンパイラはそれをconst doubleと解釈するらしい。

サポートサイト Wikidot.com