コンテナをfor文で回すときの整数型

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) {}

こっちのほうが長いか・・・