回答編集履歴
1
日本語がおかしかった
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
`test`は`MainScene::init()`のローカル変数(スタックに積まれる)ので、`MainScene::init()`が終わると、**捨てられます**。参照でキャプチャしていますので、見ている先は同じ`test`になりますが、関数を抜けて捨てられた後のその場所の値は不定になります。
|
1
|
+
`test`は`MainScene::init()`のローカル変数(スタックに積まれる)なので、`MainScene::init()`が終わると、**捨てられます**。参照でキャプチャしていますので、見ている先は同じ`test`になりますが、関数を抜けて捨てられた後のその場所の値は不定になります。
|
2
2
|
|
3
3
|
どういうことかというと、ちょっと下記のコードを見てみてください。
|
4
4
|
```C++
|
@@ -28,7 +28,7 @@
|
|
28
28
|
return 0;
|
29
29
|
}
|
30
30
|
```
|
31
|
-
|
31
|
+
hoge_ref()とhoge_val()どちらも`10`を返す関数を返す(誤字じゃないですよ)と思われますが、実際は参照キャプチャであるhoge_ref()はうまくいきません。これは`a`が捨てられて、不定になってしまったからです。
|
32
32
|
|
33
33
|
コードを直すのであれば、方法は二つです。
|
34
34
|
|