函数调用的结果如何成为表达式?
我正在阅读这篇文章-http://eel.is/c++draft/expr
它被写在那里
An expression is an xvalue if it is the result of calling a function, whether implicitly or explicitly, whose return type is an rvalue reference to object type
我不明白表达式如何成为函数调用的结果。
最佳答案
考虑这两个例子。
const auto someValue = 43 * otherValue;
const auto someOther = func();
在这两种情况下,分配对象的右侧都是一个表达式。在第一种情况下,它是整数乘法。在第二个调用中,这是一个函数调用。让我们尽可能地清楚:表达式不是调用函数的结果-而是func()
是表达式。让我们想象一下这个函数调用的签名是
struct Obj { /* ... */ };
Obj&& func();
在这里,返回类型是对象类型的右值引用。这由标准中的措辞表示。在上述情况下,表达式func()
是xvalue(“eXpiring值”)。
关于c++ - 表达式是在C++中调用函数的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204925/