私はC++を初めて使っています。これは私の最初の質問ですので、私と一緒にいらしてください...私はしばらくの間、左辺値と右辺値について読んできました。ほとんどのことを理解していると思いますが、rvalue referenceとxvalueの違いは何ですか?
int x = 32;
int& Lref = x; // Lref is lvalue ... ok
int& funcA(); // calling funcA() is lvalue ... ok
int&& Rref = 32; // Rref is lvalue ... ok I got this
int&& funcB(); // calling funcB() is rvalue ... Why?
:...ので、私の質問は
右辺値参照は左辺値(私は理解してこの部分)と考えられているが、右辺値参照を返す関数が右辺値(またははxValueは、具体的には)考えられているインスタンスの特定になりますしたがって、問題は、rvalue参照を返すfuncB()を呼び出すことがrvalueとみなされる理由は?
ありがとうございます。
'rvalue references are lvalue'それ以外の場合は2つの異なる型はありません –
' Lref'は左辺の参照ですが、 '32'はそうではなく、実際にはコンパイルされません。同じように 'const&'または '&&'が必要です。 – edmz
@黒はい私は間違いを犯したので、ただ修正した。 – Laith