LINUX.ORG.RU

История изменений

Исправление Siborgium, (текущая версия) :

Бред. Константность условия здесь ни при чем.

Если немного почитать документ по ссылке, то проблемой является отсутствие forward progress. Который в бесконечном цикле может выражаться только в виде сайдэффектов.

Т.е. даже если напихать сложных и долгих вычислений в цикл, если они не создают сайдэффектов в процессе – это UB. Или если условие не константное, но компилятор сможет доказать, что оно никогда не вычислится в false.

Исправление Siborgium, :

Бред. Константность условия здесь ни при чем.

Если немного почитать документ по ссылке, то проблемой является отсутствие forward progress. Который в бесконечном цикле может выражаться только в виде сайдэффектов.

Т.е. даже если напихать сложных и долгих вычислений в цикл, если они не создают сайдэффектов в процессе -- это UB. Или если условие не константное, но компилятор сможет доказать, что оно никогда не вычислится в false.

Исходная версия Siborgium, :

Бред. Константность условия здесь ни при чем.


int i = 0;
while (++i)
    ;

Если немного почитать документ по ссылке, то проблемой является отсутствие forward progress. Который в бесконечном цикле может выражаться только в виде сайдэффектов.

Т.е. даже если напихать сложных и долгих вычислений в цикл, если они не создают сайдэффектов в процессе – это UB. Или если условие не константное, но компилятор сможет доказать, что оно никогда не вычислится в false.