タグ

ブックマーク / ray.sakura.ne.jp (1)

  • typename は何故必要か

    まず、typename がどの様に使はれるのかを見てみる。よくあるのは、以下の二つの場合である。 template <typename T> // case 1 class Hoge { typename T::value_type v; // case 2 ... }; case 1 の typename は class で置き換へることが出来る。しかし、T には int 等の組込み型が代入されることもあるので、typename を使つた方が意味的に良いと言はれてゐる。 case 2 の typename は class で置き換へることが出来ない。class T::value_type とした場合、value_type は T の内部クラスであるという意味になる。 case 2 の様な typename は必要なさそうに見えるが省略することは出来ない。こんなもの無くても、T::valu

    xxxxxeeeee
    xxxxxeeeee 2011/06/15
    型であることを明示するtypenameキーワードはC/C++が構文木生成時に型名を特別扱いしているから/あれってCスタイルのキャスト演算子が完全に悪い気がするんだよね。
  • 1