C ++: establecer el valor bool solo si no se establece

Tengo un código en mi aplicación C ++ que generalmente hace esto:

bool myFlag = false;
while (/*some finite condition unrelated to myFlag*/) {
    if (...) {
        // statements, unrelated to myFlag
    } else {
        // set myFlag to true, perhaps only if it was false before?
    }
}
if (myFlag) {
    // Do something...
}

La pregunta que tengo pertenece a laelse Declaración de mi código. Básicamente, mi bucle puede establecer el valor de myFlag de falso a verdadero, en función de una determinada condición que no se cumple. Nunca se quitará la bandera de verdadero a falso. Me gustaría saber qué declaración tiene más sentido para el rendimiento y quizás si este problema no es un problema debido a la optimización del compilador.

myFlag = true;

O

if (!myFlag) myFlag = true;

Normalmente elegiría el primero porque requiere escribir menos código. Sin embargo, comencé a preguntarme si tal vez implicaba escribir innecesariamente en la memoria y, por lo tanto, esto último evitaría la escritura innecesaria si myFlag ya era cierto. Pero, ¿tomaría más tiempo usar esto último porque hay una declaración condicional y, por lo tanto, compilar código usando más instrucciones?

O tal vez estoy pensando demasiado en esto ...

ACTUALIZACIÓN 1

Solo para aclarar un poco ... el propósito de mi último caso es no escribir en la memoria si la variable ya era verdadera. Por lo tanto, solo escribe en la memoria si la variable es falsa.

Respuestas a la pregunta(6)

Su respuesta a la pregunta