Impedir a remoção de loops infinitos em C ++ 11
Conforme discutido emessa questão, O C ++ 11 otimiza infinitos loops de distância.
No entanto, em dispositivos incorporados que têm um único objetivo, loops infinitos fazem sentido e são realmente usados com bastante frequência. Mesmo um completamente vaziowhile(1);
é útil para uma redefinição assistida por watchdog. Loops de terminação, mas vazios, também podem ser úteis no desenvolvimento incorporado.
Existe uma maneira elegante de dizer especificamente ao compilador para não remover loops vazios ou sem fim, sem desabilitar completamente a otimização?