C ++: установить значение bool, только если не установлено

У меня есть код в моем приложении C ++, который обычно делает это:

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...
}

Вопрос, который у меня есть, относится кelse Изложение моего кода. По сути, мой цикл может установить значение myFlag от false до true, исходя из того, что определенное условие не выполняется. Никогда флаг не будет сброшен с истинного на ложное. Я хотел бы знать, какое утверждение имеет больше смысла с точки зрения производительности и, возможно, если эта проблема на самом деле не является проблемой из-за оптимизации компилятора.

myFlag = true;

ИЛИ ЖЕ

if (!myFlag) myFlag = true;

Я обычно выбираю первый, потому что он требует меньше кода. Тем не менее, я начал задаваться вопросом, что, возможно, это связано с ненужной записью в память, и, следовательно, последняя предотвратит ненужную запись, если myFlag уже был верным. Но будет ли использование последнего занимать больше времени, поскольку существует условный оператор и, следовательно, компилируется код с использованием большего количества инструкций?

Или, может быть, я слишком обдумываю это ...

ОБНОВЛЕНИЕ 1

Просто для пояснения ... цель моего последнего случая - не записывать в память, если переменная уже была истинной. Таким образом, запись в память возможна только в том случае, если переменная равна false.

Ответы на вопрос(6)

Ваш ответ на вопрос