Предположим, что у меня есть выражение, которое только часть очень маловероятно, но другое является статистически нейтральным:
if (could_be || very_improbable) {
DoSomething();
}
Помогло бы это компилятору каким-либо образом, если я поместил бы очень невероятный бит в макрос unlikely()
?
if (could_be || unlikely(very_improbable)) {
DoSomething();
}
Примечание. Я не спрашиваю, как работают маркос - я это понимаю. Вопрос здесь в отношении GCC и он сможет оптимизировать выражение, если я только намекаю на его часть. Я также признаю, что это может сильно зависеть от рассматриваемых выражений - я обращаюсь к тем, у кого есть опыт работы с этими макросами.