タグ

ブックマーク / faithandbrave.hateblo.jp (1)

  • typenameが必要な理由 - Faith and Brave - C++で遊ぼう

    『プログラミング言語C++』 C.13.5 typenameとテンプレート テンプレートを使ったプログラムでは、なぜ型名にtypenameを付ける必要があるのだろうか 以下のコードはどちらもエラーになる template <class Container> struct hoge { typedef Container::iterator iterator; // エラー }; template <class Container> void foo(Container& c) { Container::iterator it; // エラー } テンプレートは使わなければコンパイル(コード生成)されないが構文エラーくらいは検出しなければならない だが、構文チェックの時点でコンパイラはContainer::iteratorが「型」なのか「staticメンバ」なのか判別できない そこで、以下の

    typenameが必要な理由 - Faith and Brave - C++で遊ぼう
    naqtn
    naqtn 2015/03/03
    つらたん
  • 1