簡體   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