Оптимизация ветки для известного более распространенного пути

Пожалуйста, рассмотрите следующий фрагмент кода:

void error_handling();
bool method_impl();

bool method()
{
    const bool res = method_impl();
    if (res == false) {
        error_handling();
        return false;
    }
    return true;
}

я знаюmethod_impl() вернусьtrue 99,999% (да, три знака после запятой), но мой компилятор этого не делает.method() частично критично с точки зрения затрат времени.

Должен ли я переписатьmethod() (и сделать его менее читаемым), чтобы гарантировать, что скачок может произойти только тогда, когдаmethod_impl() возвращаетсяfalse? Если да, то как?Должен ли я позволить компилятору сделать работу за меня?Должен ли я позволить прогнозу ветвления моего процессора сделать работу за меня?

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

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