繁体   English   中英

表达式作为在 C++ 中调用 function 的结果

[英]expression as the result of calling a function in C++

function 调用的结果如何是表达式? 我正在阅读这篇文章 - http://eel.is/c++draft/expr并写在那里

如果表达式是调用 function(无论是隐式还是显式)的结果,则表达式是一个 xvalue,其返回类型是对 object 类型的右值引用

我不明白表达式如何成为 function 调用的结果。

考虑这两个例子。

const auto someValue = 43 * otherValue;
const auto someOther = func();

在这两种情况下,赋值的右侧都是一个表达式。 在第一种情况下,它是 integer 乘法。 在第二个调用中,它是一个 function 调用。 让我们尽可能清楚:表达式不是调用 function 的结果——相反, func()一个表达式。

假设这个 function 调用的签名是

struct Obj { /* ... */ };

Obj&& func();

这里,返回类型是 object 类型的右值引用。 这是标准中的措辞所表示的。 在上述情况下,表达式func()是一个xvalue (一个“eXpiring 值”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM