geek-branch

書き置きです。

forの初期値をdecltypeで推論する

基本的になんでもauto型で推論させたい派だから、vectorとかarrayなどのコンテナを使うとき

for (auto i = 0; i < vec.size(); i++) {}

本当はこう書きたいんだけど、まあもちろん0から推論するとint型になるわけで。.size()からはsize_tが返るからこれはまずい。

for (decltype(vec.size()) i = 0; i < vec.size(); i++) {}

こう書けば正しく推論できるかな、と最近こう書いている。
size_tは32ビット環境と64ビット環境でビット数が違うことがある。C++では基本的にautoやdecltypeなどの型推論を用いるべきだ。
長いし、indexが必要になる場合以外は範囲ベースforを用いるべきだが。範囲ベースforでindex取れるようにならないかな。