for (int i = 0; i < length; i++) {
int value = func();
}

これではループの度に変数iが宣言されて冗長だから

int i, value;
for (i = 0; i < length; i++) {
value = func();
}

C++でこうした方が速い、こうするべきだとよく書かれていますが
これだとループカウンタのスコープが外に出るので危険ですよね
それにこの一連の動作を関数で定義して、関数ごとループさせるような場合はあまり意味を成さないし
ループカウンタをメンバ変数やグローバル変数にするのも馬鹿げていると思います
基本も基本で恐縮ですが、実際のところ、皆様がどのように書かれているのか参考にさせていただければ幸いです