![](/img/trans.png)
[英]Why does calling a function on seperate lines change the result in c++?
[英]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.