История изменений
Исправление soomrack, (текущая версия) :
прогу всегда можно завершить извне данного цикла, каким-нить сигналом, другим тредом и все такое. потому бесконечный цикл без слипа, это конечно не красиво, но нестрашно.
Про это дискуссии и были, т.к. while(1) может использоваться для ожидания сигнала извне и пр.
С т.з. стандарта:
C 2011 (6.8.5 Iteration Statements): в этом случае цикл должен выполняться, UB нет. Есть только замечание, что цикл с НЕ CONST условием можно выбросить если внутри него ничего не происходит (перечислено, что должно не происходить).
Не должно быть: no input, no output, does not access volatile objects, no synchronization or atomic operations in its body, controlling expression.
Тут вот может некоторое UB возникнуть при выкидывании этого цикла.
C++ 2017: нет никаких замечаний про выбрасывание цикла, просто цикл должен исполняться, пока условие не станет false.
Исправление soomrack, :
прогу всегда можно завершить извне данного цикла, каким-нить сигналом, другим тредом и все такое. потому бесконечный цикл без слипа, это конечно не красиво, но нестрашно.
Про это дискуссии и были, т.к. while(1) может использоваться для ожидания сигнала извне и пр.
С т.з. стандарта:
C 2011 (6.8.5 Iteration Statements): в этом случае цикл должен выполняться, UB нет. Есть только замечание, что цикл с НЕ CONST условием можно выбросить если внутри него ничего не происходит (перечислено, что должно не происходить).
Не должно быть: no input, no output, does not access volatile objects, no synchronization or atomic operations in its body, controlling expression.
Тут вот может некоторое UB возникнуть при выкидывании этого цикла.
C++ 2017: нет никаких замечаний про выбрасывание цикла, просто цикл должен исполняться, пока условие не станет true.
Исходная версия soomrack, :
Про UB я, действительно, несколько загнул, в последний стандартах этого нет, но кажется, в более ранних стандартах были нюансы с UB.
прогу всегда можно завершить извне данного цикла, каким-нить сигналом, другим тредом и все такое. потому бесконечный цикл без слипа, это конечно не красиво, но нестрашно.
Про это дискуссии и были, т.к. while(1) может использоваться для ожидания сигнала извне и пр.
С т.з. стандарта:
C 2011 (6.8.5 Iteration Statements): в этом случае цикл должен выполняться, UB нет. Есть только замечание, что цикл с НЕ CONST условием можно выбросить если внутри него ничего не происходит (перечислено, что должно не происходить).
C++ 2017: нет никаких замечаний про выбрасывание цикла, просто цикл должен исполняться, пока условие не станет true.