// Adds name to a scope/loop and allows to break from it by name
// Example:
// LABELED(outerLoop) for (auto it = container.begin(); it != container.end(); it++)
// {
// switch (*it)
// {
// case 1:
// BREAK_FROM(outerLoop);
// }
// }
#define LABELED(scopeName) if (false) scopeName:; else
#define BREAK_FROM(scopeName) goto scopeName
for (auto it = container.begin(); it != container.end(); it++)
{
switch (*it)
{
case 1:
goto afterMainIteration;
}
}
afterMainIteration:;
Намного понятнее и прямее
Всё равно корректность этого твоего BREAK_FROM никак не проверяется...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
// Adds name to a scope/loop and allows to break from it by name
// Example:
for (auto it = container.begin(); it != container.end(); it++)
{
if (*it == 1)
break;
}
AlexGin:
AG>Всё просто как карандаш в стакане! AG>
Кхм. "Карандаш в стакане" обычно говорят про это, кхм...
взаимоотношения с очень опытными женщинами. При чем тут сишный код?
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
AG>// Adds name to a scope/loop and allows to break from it by name
AG>// Example:
AG> for (auto it = container.begin(); it != container.end(); it++)
AG> {
AG> if (*it == 1)
AG> break;
AG> }
AG>
Топикстартер продемонстрировал java-style goto.
Там меткой обзывается конкретный оператор (простой или составной), а переход осуществляется как break метка.
Таким образом можно выйти из нескольких циклов (или вообще составных операторов).
Особенно полезно при портировании java-кода на C.
Собственно, об этом уже писали в теме.
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Здравствуйте, Дрободан Фрилич, Вы писали:
ДФ>Топикстартер продемонстрировал java-style goto. ДФ>Там меткой обзывается конкретный оператор (простой или составной), а переход осуществляется как break метка. ДФ>Таким образом можно выйти из нескольких циклов (или вообще составных операторов). ДФ>Особенно полезно при портировании java-кода на C. ДФ>Собственно, об этом уже писали в теме.