我刚刚发现内联 if (A?B:C) 在 switch 语句中无法按预期工作。
其中 A 是布尔值,B 和 C 都是不等于 0 的整数。当放置在 switch 中时,此语句的结果为 0。
我发现了一个 stackoverflow 帖子 [1],其中提到了这种行为,但我找不到任何解释为什么这不能像我预期的那样工作。这是什么原因造成的?
例如:
int foo = 6;
switch(foo)
{
case 6:
return 10 + true ? 2 : 4;
}
[1] C++ 中内联函数的好处?