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

回答編集履歴

3

微修正

2019/12/17 03:53

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -10,4 +10,4 @@
10
10
  > 2つ目のrange-based forは危険でしょうか?
11
11
 
12
12
  str_existの寿命はmain関数の終わりまであるので、危険ではないです。
13
- for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。
13
+ これに対して、for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。

2

追記

2019/12/17 03:53

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -5,4 +5,9 @@
5
5
 
6
6
  従って、[ここで回答した](https://teratail.com/questions/229768#reply-335383)のと同じ原理で破棄されてしまうということのようです。
7
7
 
8
- [wandboxで実験](https://wandbox.org/permlink/dp9bboaQMMevHqwH)のコードの前者は上記質問のNG1と同じ原理です。
8
+ [wandboxで実験](https://wandbox.org/permlink/dp9bboaQMMevHqwH)のコードの前者は上記質問のNG1と同じ原理です。
9
+
10
+ > 2つ目のrange-based forは危険でしょうか?
11
+
12
+ str_existの寿命はmain関数の終わりまであるので、危険ではないです。
13
+ for文の「コンテナを指定する式の一時オブジェクト」の寿命はその式が終わるまでですので、for文のループ・ブロックに入る前に破棄されます。

1

補足

2019/12/17 03:46

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  こんにちは。
2
2
 
3
3
  私もあれ?っと思ったのですが、どうも範囲ベースforのコンテナへの参照は右辺値参照で参照されるからのようです。
4
- [範囲for文](https://cpprefjp.github.io/lang/cpp11/range_based_for.html)に記載されていました。
4
+ この旨のコードが[範囲for文](https://cpprefjp.github.io/lang/cpp11/range_based_for.html)に記載されていました。
5
5
 
6
6
  従って、[ここで回答した](https://teratail.com/questions/229768#reply-335383)のと同じ原理で破棄されてしまうということのようです。
7
7