X&& x = static_cast<X&&>(obj_x);
のようなものは、外見にもかかわらず、x
は通常の左辺値の参照になります。私は最近、this articleに遭遇しました。スコットマイヤーズは、x
がタイプ値参照の左辺値になると主張しています。これは本当に意味があるのですか、それとも違いなしの区別ですか?具体的には、与えられたいずれかのC++では、変数にrvalue型の参照があると言っても意味がありますか?
X&& x = static_cast<X&&>(obj_x)
または
X& x = obj_x;
x
のこれら二つの定義のために異なる振る舞いをします、後続のコードがありますか?
'decltype(x)'。 'x'が非静的なデータメンバである場合、コピーコンストラクタの生成にも影響します。 – cpplearner
このコメントを回答にしてみませんか? – Ari