- 【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
711 :646[sage]:2015/07/18(土) 01:48:45.91 ID:+Rsx7s6r - 議論がかなりヒートアップしてて書き込むのが恐れ多いのですが・・・
どうやら左辺値・右辺値および左辺値参照・右辺値参照というものを正しく理解していないのが 自分の混乱の原因みたいです。 そこで確認させていただきたいのですが、以下の lr と rr はどちらもlvalueなんでしょうか? struct X{ } ; int f() { return 0 ; } int main() { int i = 0 ; // 式じゃないので、i はrvalueでもlvalueでもない i ; // lvalue 0 ; // rvalue X x ; // 式じゃないので、x はrvalueでもlvalueでもない x ; // lvalue X() ; // rvalue f() ; // rvalue X & lr = x ; // lr はlvalueへの参照だが、lr 自体はlvalue? X && rr = X() ; // rr はrvalueへの参照だが、rr 自体はlvalue? } # そういえば、右辺値やムーブ等を勉強するために相当ググって色々なサイトを見ましたが 皆微妙に言っていることが違ったりして、このスレで激論が生じるのもむべなるかなと感じた次第・・・ まぁそこがC++の面白さでもあるんですかね
|