タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

typenameとC++に関するakakitのブックマーク (2)

  • typenameキーワードの使いどころ - ぬいぐるみライフ?

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

    typenameキーワードの使いどころ - ぬいぐるみライフ?
  • テンプレートあれこれ (4) -- typename の役割 - C++ Labyrinth

    テンプレートあれこれ (4) -- typename の役割 typename というキーワードには、2通りの用法がある。 "static" もそうだが、同一のキーワードに複数の意味を持たせるのは、 C++ の悪い癖だな。なんとかしてほしいところ。 で、typename の一つの意味は、テンプレート引数として 「型」を取ることを宣言する場合。 これは、"class" キーワードで置換できる。 たとえば、次の (A) と (B) は同値である。 template<typename T> class Foo; // (A) template<class T> class Foo; // (B) まあ、これは誰でも知っていると思う。 typename には、もう一つ、後続する識別子が 「型名」であることを明示するという重要な働きがある。たとえば、 template<class T> class

  • 1