>>870
既に816に書いたし、元のstackoverflowとの例とも同じだが、再記すると、

do {
bool flag = ...
} while (flag);

要するに while () までスコープを拡大しろ、というだけ。
これ自体もfor文とは整合性が取れている。敢えてスコープを [ ] で示すと、

[ for (int i=0; i<num; i++) { ... } ]
[ do { ... } while ( ... ) ]
[ while ((String^ line = sr->Readline())!=nullptr) { ... } ]

要するに全部外側まで含めろ、でしかない。
これは既に記したC++リファレンスでも言ってるだろ。
> 見方を変えるとfor文で可能な初期化が、なぜかif文やswitch文ではできない、文法に一貫性がない問題と見ることもできる。
> https://cpprefjp.github.io/lang/cpp17/selection_statements_with_initializer.html
ならdo-whileとwhileでもやらせろ、というだけの話。

ただしこれに関しては合意する必要がないので、ここまででいい。
俺はこれが最善だと思うし、君は816が最善だと思っているだけ。
提案するならどうぞ。俺は君の案が最善だとは思わないから協力はしない。
ただ、仕様委員会が君の提案を最善だと思うのなら、通るだろうし、その可能性もあると思う。
どちらがいいかなんて俺と君で詰める必要はないし、その意味もない。
(というのを868で言ったつもり)