Для типичного современного компилятора на современном оборудовании, оператор ? :
приведет к ответвлению, которое влияет на конвейер команд?
Другими словами, что быстрее, вызывая оба случая, чтобы избежать возможного перехода:
bool testVar = someValue(); // Used later.
purge(white);
purge(black);
или выбор того, который действительно должен быть очищен, и только с оператором ?:
:
bool testVar = someValue();
purge(testVar ? white : black);
Я понимаю, что вы не представляете, как долго будет очищаться ()принять, но я просто задаю здесь общий вопрос о том, захочу ли я когда-нибудь дважды вызвать purge (), чтобы избежать возможной ветки в коде.
Я понимаю, что это очень крошечная оптимизация и может сделатьразницы нет, но все равно хотелось бы знать.Я ожидаю, что ?:
не приведет к ветвлению, но хочу убедиться, что мое понимание верно.