このページを読んで c++11 の右辺値参照について学び始めたばかりですが、最初のページで行き詰まりました。これが私がそのページから取ったコードです。
int& foo();
foo() = 42; // ok, foo() is an lvalue
int* p1 = &foo(); // ok, foo() is an lvalue
int foobar();
j = foobar(); // ok, foobar() is an rvalue
int* p2 = &foobar(); // error, cannot take the address of an rvalue
- なぜ
foo()左辺値なのですか?基本的に左辺値をfoo()返すためですか?int& - なぜ
foobar()右辺値なのですか?foobar()返品するからintですか? - 一般に、関数が右辺値であるかどうかを気にするのはなぜですか? その記事の残りの部分を読めば、これに対する答えが得られると思います。