拒绝C规则“条件表达式不产生左值”的动机是什么?

拒绝C规则的动机是什么a conditional expression does not yield an lvalue

换句话说:在 C 中,它是not yield an lvalue. 为什么在 C++ 中这种动机被拒绝(或重新考虑)?

回答

C++ 有参考;C 没有。

如果没有以下规则,您将无法从条件运算符的调用中绑定 [可变] 引用:

[expr.cond/5]:如果第二个和第三个操作数是同一个值类别的泛左值并且具有相同的类型,则结果属于那个类型和值类别,如果第二个或第三个操作数是位域,则结果是位域,或者如果两者都是位域。


以上是拒绝C规则“条件表达式不产生左值”的动机是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>