Bar*_*rry 15
这在P0806中有解释,正如标题所说,“Deprecate[d] 隐式捕获thisvia [=]”
论文中的论点是,此时我们有[this](捕获this指针)和[*this](捕获对象本身),以及[&](通过引用捕获对象,这基本上是this通过值捕获指针)。因此,是否[=]应该意味着[this]或可能是含糊不清的[*this],并且可能令人惊讶的是,它意味着前者(因为[=]在这种情况下充当参考捕获)。
因此,您必须编写[=, this]或[=, *this],具体取决于您实际想要的两者之一。
顺便说一句,该论文声称的内容毫无价值:
此更改不会破坏其他有效的 C++20 代码
然而,如果您-Werror像许多人一样在启用警告的情况下进行编译(并且应该这样做,除非您有令人信服的理由不这样做 - 确实有),这一更改当然会破坏许多其他有效的 C++20 代码。
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |