Cómo superar elegantemente las advertencias inútiles del compilador de C ++?

Esta pregunta no está vinculada a ninguna advertencia específica del compilador, el siguiente es solo un ejemplo.

Actualmente cuando quiero un bucle que verifique una condición de salida dentro:

 while( true ) {
    doSomething();
    if( condition() ) {
       break;
    }
    doSomethingElse();
}

No puedo simplemente escribir eso en Visual C ++: emitirá un C4127conditional expression is constant advertencia. El compilador lo agitará en mi cara, aunque es bastante obvio quewhile(true) no puede haber sido escrito de manera accidental.

Supongo que quiero un código que se compila sin advertencias. Hay soluciones alternativas a mi servicio.

Workaround one es usarfor(;;) pero se siente estúpido, ¿por qué querría esa cosa rara en lugar de una elegante y concisa idiomáticawhile(true)? Trabajo dos es usar#pragma warning( suppress) antes dewhile( true ) line pero agrega un banner enorme que es dos veces más grande que elwhile -declaración en sí. @Trabajo tres es deshabilitar C4127 para todo el proyecto (lo he visto hecho en un proyecto real) pero luego todas las posibles instancias útiles de C4127 también están deshabilitadas.

Existe alguna forma elegante de deshacerse de una advertencia sin sentido?

Respuestas a la pregunta(7)

Su respuesta a la pregunta