1
私は次のコードを持っている:C++のgoto(というより継続)構文風変わり
file_system_helpers.cpp(109) : error C2143: syntax error : missing ';' before '}'
私はそれを変更した場合:このエラーで(VC++ 2010)コンパイルされません
do
{
doStuffP1();
if (test)
{ goto skip_increment;
}
dostuffP2();
skip_increment:
// 1; // Only works if I remove the comment at line start.
} while (loop);
を:
skip_increment:
1;
コンパイル(および動作)。
これは本当にC++構文の制限ですか?
私は '後藤と認識'はほぼ普遍的に悩まされていますが、内側のループから外側のループを「続ける」優れた方法はありません。私が考えることができる唯一の方法は、余分な変数(外側のループが '続行するかどうかを格納する' bool')を伴います。 –
私は、余分な 'bool'を使うことは' goto'よりも優れていると主張しますが、私はプログラマーとしてはかなり経験がありません。私は 'goto'自体が安全な記述であるとは思わないし、余分な変数はそれほどコストがかかりませんね。しかし、それは私の2cです。 ^^ ' – blahman
コードを関数に抽出し、早期リターンを使用します。 –