File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change 2
2
* cpp17[ meta cpp]
3
3
4
4
## 概要
5
- C++14までラムダ式で` [this] ` のようにキャプチャをすると、` this ` ポインタがコピーされていた。その場合、非同期処理のような状況で、ラムダ式の関数オブジェクトが呼び出されたときに、` this ` ポインタが指すオブジェクトの寿命が付きている場合がある 。
5
+ C++14までラムダ式で` [this] ` のようにキャプチャをすると、` this ` ポインタがコピーされていた。その場合、非同期処理のような状況で、ラムダ式の関数オブジェクトが呼び出されたときに、` this ` ポインタが指すオブジェクトの寿命が尽きている場合がある 。
6
6
7
7
C++17では` [*this] ` のようにキャプチャすることで、キャプチャ時点での` *this ` オブジェクトをコピーできるようになった。
8
8
@@ -11,7 +11,7 @@ C++17では`[*this]`のようにキャプチャすることで、キャプチャ
11
11
12
12
## 備考
13
13
- ` [*this] ` でコピーキャプチャしたオブジェクトは、デフォルトで` const ` になるので注意。` [this] ` はポインタであるため書き換えができ、非` const ` メンバ関数を呼び出せる。しかし、` [*this] ` はオブジェクトをコピーして` const ` となるため、ラムダ式に` mutable ` を付けない限り、非` const ` メンバ関数を呼び出せない。
14
- - ラムダ式の関数オブジェクトが呼び出されたときに、` this ` ポインタの寿命が付きる場合があることが正しい状況では 、依然として[ ` std::weak_ptr ` ] ( /reference/memory/weak_ptr.md ) のような機能を使用して、生死監視をする必要がある。
14
+ - ラムダ式の関数オブジェクトが呼び出されたときに、` this ` ポインタの寿命が尽きる場合があることが正しい状況では 、依然として[ ` std::weak_ptr ` ] ( /reference/memory/weak_ptr.md ) のような機能を使用して、生死監視をする必要がある。
15
15
16
16
17
17
## 例
You can’t perform that action at this time.
0 commit comments