回答編集履歴
3
微修正
test
CHANGED
@@ -22,4 +22,4 @@
|
|
22
22
|
|
23
23
|
str_existの寿命はmain関数の終わりまであるので、危険ではないです。
|
24
24
|
|
25
|
-
for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。
|
25
|
+
これに対して、for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。
|
2
追記
test
CHANGED
@@ -13,3 +13,13 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
[wandboxで実験](https://wandbox.org/permlink/dp9bboaQMMevHqwH)のコードの前者は上記質問のNG1と同じ原理です。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
> 2つ目のrange-based forは危険でしょうか?
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
str_existの寿命はmain関数の終わりまであるので、危険ではないです。
|
24
|
+
|
25
|
+
for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。
|
1
補足
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
私もあれ?っと思ったのですが、どうも範囲ベースforのコンテナへの参照は右辺値参照で参照されるからのようです。
|
6
6
|
|
7
|
-
[範囲for文](https://cpprefjp.github.io/lang/cpp11/range_based_for.html)に記載されていました。
|
7
|
+
この旨のコードが[範囲for文](https://cpprefjp.github.io/lang/cpp11/range_based_for.html)に記載されていました。
|
8
8
|
|
9
9
|
|
10
10
|
|