Вопрос осложняется тем, что в одном случае вы показываете bool
expression
, в другом случае вы показываете int
condition
.
Если ваше выражение естественно оценивается как int
, тогда использование этого int
для выбора элемента из массива не будет включать никакого ветвления. Если наиболее естественный тип, по которому ваше выражение оценивает, - bool
, то вам нужно будет преобразовать его в int
, и это преобразование, скорее всего, будет включать внутреннее ветвление, поэтому вы, вероятно, ничего не получите. Я говорю «вероятно», потому что многое зависит от компилятора и базового набора команд ЦП, поэтому вы не узнаете, если ваш компилятор не произведет разборку и не изучит разборку.
Сказанное выше, я добавлю, что ваше стремление устранить ветку - скорее бесполезное упражнение Нет ничего плохого в ветвлении, и оно не работает плохо. Правда, лучше всего удалять ветки, но только если это тривиально. Если для устранения ветвления вы вводите массив, которого у вас не было бы иначе, то вы, вероятно, добавляете на порядок больше накладных расходов, чем экономите. Если вы вводите вектор вместо массива, вы можете вводить в два раза больше ресурсов массива. Итак, моя рекомендация по этому поводу: не беспокойтесь о ветвлении.