-2
我刚刚发现了一种内联方式,如果(A?B:C)在switch语句中无法按预期方式工作。C++内联,如果在开关中失败
其中A是一个布尔型,B和C都是不等于0的整数。当置于开关内部时,此语句的结果为0。
我找到了一个stackoverflow post [1]这个行为被提及但我找不到任何解释为什么这不起作用,因为我期望。这是什么造成的?
例如:
int foo = 6;
switch(foo)
{
case 6:
return 10 + true ? 2 : 4;
}
[1] Benefits of inline functions in C++?
请给出你的意思的代码示例。 –
这就是所谓的“条件运算符”或“三元运算符”,而不是“内联if”。链接的讨论是关于内联函数,它们是无关的。发布一些代码。 –
你的意思是'switch(a?b:c){...}'? – MSN