Я только что нашел сложный способ встроенного выражения, если (A? B: C) не работает должным образом в операторе switch.
, где A - логическое значение, B и C, оба целых числа не равны 0.Результатом этого оператора является 0, когда он помещается в коммутатор.
Я нашел пост стекопотока [1], где упоминалось это поведение, но не могу найти объяснения, почему это не работает так, как я ожидал.Что вызывает это?
Например:
int foo = 6;
switch(foo)
{
case 6:
return 10 + true ? 2 : 4;
}
[1] Преимущества встроенных функций в C ++?