(A?B:C)がswitchステートメントで期待どおりに機能しない場合、インラインで難しい方法を見つけました。
ここで、Aはブール値、BとCはどちらも0に等しくない整数です。このステートメントの結果は、スイッチ内に配置された場合は0になります。
この動作が言及されているstackoverflowの投稿[1]を見つけましたが、これが期待どおりに機能しない理由を説明できません。これを引き起こしているのは何ですか?
例えば:
int foo = 6;
switch(foo)
{
case 6:
return 10 + true ? 2 : 4;
}