C++0x 11
■ このスレッドは過去ログ倉庫に格納されています
0465デフォルトの名無しさん
2010/11/03(水) 15:49:153.10-1
・lvalue (名前付き変数/&戻り値) と
・xvalue (&&戻り値) と
・prvalue (即値/値で戻ってきた戻り値)
だけで、glvalue とか rvalue とかいうのは
上記3つのうち二つをまとめて呼ぶときの略称みたいなもの。
「左辺値には lvalue と xvalue があって、
右辺値には xvalue と prvalue がある…??」
のように思ってしまうと、訳が分からなくなる。
そうじゃなくて、無機質に、rvalue は xvalue と prvalue の総称なんだな、と考える。
そして左辺値参照と右辺値参照も、上の用語とは切り離して考える。
「rvalue」という用語が出てきたとき、「右辺値参照」を連想してはいけない。
この二つはカテゴリが違う概念だから。
「rvalue」と言われたら、「xvalue か prvalueだな」と思って読む。
ちなみに、参照に関しては↓のようになっている。
8.5.3-5
・左辺値参照は lvalue を受け取れる
・特にconst左辺値参照は、なんでも受け取れる
・右辺値参照は、xvalueとprvalueを受け取れる。
■ このスレッドは過去ログ倉庫に格納されています