LINUX.ORG.RU

Может оптимизировать, если функция инлайнится или помечена атрибутом const. Но лучше на это не полагаться.

unsigned ★★★★
()

если код arr.size() не виден из текущей единицы трансляции - будет вычисляться каждый раз, в любом случае так писать нельзя

wota ★★
()

Очень плохой вариант. Если размер arr в цикле не меняется - надо его сохранять во временной переменной.

trex6 ★★★★★
()

Интересно знать, вычисляется ли ceil(sqrt(arr.size())) на каждой итерации, или компилятор оптимизирует вычисления?

gcc -S да посмотри

madcore ★★★★★
()
Ответ на: комментарий от unsigned

Может оптимизировать, если функция инлайнится или помечена

атрибутом const.

К слову, атрибут const у метода класса вовсе не означает, что данный метод для данного состояния объекта будет возвращать одинаковые значения.

yoghurt ★★★★★
()
Ответ на: комментарий от Delirium_veritas

А если меняется, то никто не гарантирует, что он будет вычисляться на каждой итерации.

Вроде гарантирует.

Legioner ★★★★★
()

Компилятор GCC

За компиляторо-специфичный код давать пинков.

anonymous
()
Ответ на: комментарий от Legioner

Ну баг не баг, а как-то повелось у меня с тех пор в таких случаях while использовать. Хотя в приведённом примере лучше воспользоваться советом trex6.

Delirium_veritas
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.