C++03まではこんな感じで書くと警告出る場合がけっこうあったので
std::vector<int> v; for (int i = 0; i < v.size(); ++i) {} // 警告:signedとunsignedを比較しました
intの代わりにstd::size_tを使ってましたが
std::vector<int> v; for (std::size_t i = 0; i < v.size(); ++i) {} // OK
C++0xのdecltypeは::を使えるようになりそうなので
こう書けるようになるかも
std::vector<int> v; for (decltype(v)::size_type i = 0; i < v.size(); ++i) {}
こっちのほうが長いか・・・