web-dev-qa-db-ja.com

右辺値から左辺値への変換?

右辺値を左辺値に変換できないのはなぜですか?ただし、逆方向に変換することは可能です。技術的には右辺値はメモリアドレスを持っていますね?

15
user8194556

あなたはできる:

_int&& x = 3;
_

xが左辺値になりました。いわゆる 'rvalue-reference'は一時にバインドできますが、名前is lvalueを持つものはすべてforward<>()にする必要がありますあなたはそれがrvaluenessである必要があります。

一時変数を右辺値参照(またはconst参照)にバインドすることにより、その寿命が延びることに注意してください。一時的には有効期間が短いため、技術的にはキャストは可能ですが、お勧めできません。そのため、通常は参照がぶら下がっています。

11
sp2danny