Будет ли компилятор оптимизировать выход из внутреннего цикла?C++

Программы на C++. Форум разработчиков
Anonymous
Будет ли компилятор оптимизировать выход из внутреннего цикла?

Сообщение Anonymous »

У меня код выглядит следующим образом (показаны все варианты использования Done):

Код: Выделить всё

bool done = false;
for(int i = 0; i < big; i++)
{
...
for(int j = 0; j < wow; j++)
{
...
if(foo(i,j))
{
done = true;
break;
}
...
}
if(done) break;
...
}
преобразуют ли его компиляторы в это:

Код: Выделить всё

for(int i = 0; i < big; i++)
{
...
for(int j = 0; j < wow; j++)
{
...
if(foo(i,j))
goto __done; // same as a labeled break if we had it
...
}
...
}
__done:;
Примечание: Хотя меня больше всего интересует, будет ли if(done)break; обойден и удален как мертвый код , меня также интересует, будет ли оно удалено и сделано вообще.

Подробнее здесь: https://stackoverflow.com/questions/305 ... inner-loop

Вернуться в «C++»