gpt4 book ai didi

c++ - 调试捕获此的 lambda

转载 作者:太空狗 更新时间:2023-10-29 22:55:28 25 4
gpt4 key购买 nike

我有一个捕获 this 的 lambda。当我调试它时,我无法看到捕获对象的成员:如果我执行 p *this,LLDB 会打印:

((anonymous class)) $1 = {
this = 0x17ebb62c
}

显然我的 lambda 类只包含一个成员,即它捕获的 this 指针。似乎是合法的,所以我尝试了 p this->this 然后它报告:

error: expected unqualified-id

我担心 LLDB 会丢失,因为它既是关键字又是我的匿名类的成员。是这样吗?我该怎么做才能避免这种情况?

最佳答案

假设如下代码:

struct S
{
auto f() { return [this](){ return ++i; }; }
int i = 0;
};

我发现有时有必要分两步进行:

> break S::f
> continue
...
> print *this
((anonymous class)) $1 = {
this = 0x17ebb62c
}
> print (S*)0x17ebb62c
S $2 = {
i = 0
}

关于c++ - 调试捕获此的 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51928263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com