C++17 lambda表达式捕获this 写法
时间: 2023-07-06 19:04:38 浏览: 554
C++this的使用
在C++17中,可以使用以下两种方式来捕获`this`指针:
1. 隐式捕获:
```c++
auto lambda = [this](){
// lambda函数体
};
```
在lambda表达式中使用`[this]`来隐式捕获当前对象的`this`指针。
2. 显式捕获:
```c++
auto lambda = [ptr = this](){
// lambda函数体
};
```
在lambda表达式中使用`ptr = this`来显式捕获当前对象的`this`指针,并将其存储为一个命名的变量`ptr`。这种方式的好处是可以避免在lambda函数体中使用`this`指针的影响。
阅读全文