回答編集履歴
1
typo修正
test
CHANGED
@@ -30,15 +30,15 @@
|
|
30
30
|
|
31
31
|
式と変数の大きな差は、ざっくり書くと(一部の例外を除き)結果が右辺値(値)か左辺値(容器)かの差です。
|
32
32
|
|
33
|
-
右辺値と左辺値の最大の差は、そこへ値を「代入」できるかどうかです。普通は右辺値に値を代入することはできませんが左辺値は普通に値を代入できます。(`a=a+123;`において a 左辺値、a+123の計算結果は右辺値です。)
|
33
|
+
右辺値と左辺値の最大の差は、そこへ値を「代入」できるかどうかです。普通は右辺値に値を代入することはできませんが、左辺値は普通に値を代入できます。(`a=a+123;`において a は左辺値、a+123の計算結果は右辺値です。)
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
関数の仮引数はコピー渡しなら右辺値、左辺値共に受け取れます。ご提示されているfoo()関数はご存知のようにコピー渡しですから、上記の前者・後者どちらとも受け取れます。ただし、コピー渡しですから当然コピーが発生します。int型等の小さな変数を引き渡す時に好ましい渡し
|
37
|
+
関数の仮引数はコピー渡しなら右辺値、左辺値共に受け取れます。ご提示されているfoo()関数はご存知のようにコピー渡しですから、上記の前者・後者どちらとも受け取れます。ただし、コピー渡しですから当然コピーが発生します。int型等の小さな変数を引き渡す時に好ましい渡し方です。
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
さて、大きな変数を渡す時はコピーのコストを嫌う
|
41
|
+
さて、大きな変数を渡す時はコピーのコストを嫌うため参照渡しが好まれます。この時に右辺値、左辺値が問題になります。
|
42
42
|
|
43
43
|
ノーマルな参照型の仮引数は左辺値しか受け取れません。
|
44
44
|
|