xml*_*lmx 0 c c++ evaluation expression ternary-operator
在Lisp中,可以评估任何表达式.C++采用的概念是:"表达式","价值","评估".
如果您不知道"表达式","值"和"评估"之间的关系,请参阅C++标准5.1.
我知道?:表达式与+表达式相同.
必须能够评估任何表达式并给出值.然而,?:表达似乎并非总是如此.
void f1() {}
void f2() {}
void test(bool b)
{
b ? f1() : f2(); // OK. What's the value of this expression?
}
Run Code Online (Sandbox Code Playgroud)
任何表达式都应该有一个值; b ? f1() : f2();是一种表达; 它的价值是什么?
任何解释?
更新和我自己的答案:
摘自C++标准5.1:
表达式可能会导致值,并可能导致副作用.