Я пишу критический кусок кода с примерно следующей логикой
if(expression is true){
//do something with extremely low latency before the nuke blows up. This branch is entered rarely, but it is the most important case
}else{
//do unimportant thing that doesnt really matter
}
Я думаю использовать макрос likely()
вокруг выражения, поэтому, когда он попадает в важную ветвь, я получаю минимальную задержку.
Мой вопрос заключается в том, что использование действительно противоположно предложенному названию макроса, потому что я выбираю маловероятную ветвь для предварительной выборки, т.е. важная ветвь вряд ли произойдет, но это самая важная вещь, когда это происходит.
Есть ли явный недостаток в этом с точки зрения производительности?