Если вам нужно несколько веток в одном и том же условии, используйте if:
if (A == 6)
f(1, 2, 3);
else
f(4, 5, 6);
Если вам нужно несколько веток с разными условиями, то если число операторов будет снежным комом, вы захотите использовать троичную:
f( (A == 6)? 1: 4, (B == 6)? 2: 5, (C == 6)? 3: 6 );
Кроме того, вы можете использовать троичный оператор при инициализации.
const int i = (A == 6)? 1 : 4;
Делать это с помощью if очень грязно:
int i_temp;
if (A == 6)
i_temp = 1;
else
i_temp = 4;
const int i = i_temp;
Вы можете 't поместить инициализацию внутри if / else, потому что это меняет область видимости.Но ссылки и константные переменные могут быть связаны только при инициализации.