teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

微修正

2019/06/07 07:23

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -11,5 +11,5 @@
11
11
 
12
12
  ---
13
13
  【alphyaさんの回答を見て修正】
14
- (a)はてっきり一時領域を返すと思っていたのですが、(例えばstd::vectorのoperator[]やatと同様)これの結果は左辺値参照になるようです。`(a)=123;`が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
14
+ (a)はてっきり一時領域を返すと思っていたのですが、(例えばstd::vectorのoperator[]やatと同様)これの結果は左辺値参照と理解しておけば良さそうです。`(a)=123;`が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
15
15
  左辺値参照は当然lvalueなので int& になるということのようです。

3

補足

2019/06/07 07:23

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -11,5 +11,5 @@
11
11
 
12
12
  ---
13
13
  【alphyaさんの回答を見て修正】
14
- (a)はてっきり一時領域を返すと思っていたのですが、これは左辺値参照を返すようです。`(a)=123;`が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
14
+ (a)はてっきり一時領域を返すと思っていたのですが、(例えばstd::vectorのoperator[]やatと同様)これの結果は左辺値参照になるようです。`(a)=123;`が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
15
15
  左辺値参照は当然lvalueなので int& になるということのようです。

2

typo修正

2019/06/07 07:17

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -11,5 +11,5 @@
11
11
 
12
12
  ---
13
13
  【alphyaさんの回答を見て修正】
14
- (a)はてっきり一時領域を返すと思っていたのですが、これは左辺値参照を返すようです。`(a)=123;'が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
14
+ (a)はてっきり一時領域を返すと思っていたのですが、これは左辺値参照を返すようです。`(a)=123;`が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
15
15
  左辺値参照は当然lvalueなので int& になるということのようです。

1

追記

2019/06/07 07:13

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -7,4 +7,9 @@
7
7
 
8
8
  さて、「rvalue referenceはlvalue」が謎ですよね。「お前は何を言っているんだ?」と感じます。
9
9
  以前、拙いですが[ところで右辺値参照は左辺値です](https://theolizer.com/cpp-school1/cpp-school1-36/#lvalue)で解説したことがあります。
10
- 分かりやすいとは言えませんが、多少はヒントになるかも知れません。
10
+ 分かりやすいとは言えませんが、多少はヒントになるかも知れません。
11
+
12
+ ---
13
+ 【alphyaさんの回答を見て修正】
14
+ (a)はてっきり一時領域を返すと思っていたのですが、これは左辺値参照を返すようです。`(a)=123;'が[通りました](https://wandbox.org/permlink/ocUg668Vg1um7eWw)。(一時領域ならエラーになる筈です。)
15
+ 左辺値参照は当然lvalueなので int& になるということのようです。