タグ

ブックマーク / 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

    t-murachi
    t-murachi 2011/01/18
    せめて static_cast<hoge>(-2) って書いたときぐらいは hoge を型名として扱って欲しいもんだけどね。
  • 1