我试图弄清楚如何获取自身内部的lambda函数的地址。这是一个示例代码:
[]() {
std::cout << "Address of this lambda function is => " << ????
}();
我知道我可以在变量中捕获lambda并打印地址,但是我想在执行此匿名函数时就地执行该操作。
有没有更简单的方法?
24
这仅仅是出于好奇,还是您需要解决一个潜在的问题?如果存在根本问题,请直接提出问题,而不是针对(对于我们而言)未知问题提出单一解决方案。
—
一些程序员花花公子
...有效地确认XY问题。
—
ildjarn
您可以将lambda替换为手动编写的仿函数类,然后使用
—
HolyBlackCat
this
。
解决方案 “获取自身内的lamba函数的地址”是您所关注的解决方案。可能还有其他解决方案,可能更好。但是我们不能为您提供帮助,因为我们不知道真正的问题是什么。我们甚至不知道您将使用该地址做什么。我要做的就是帮助您解决实际问题。
—
一些程序员花花公子
@Someprogrammerdude虽然您所说的大部分内容都是明智的,但我问“如何完成X?” 并没有问题。X在这里是“从自身内部获取lambda的地址”。不知道您将使用什么地址也没关系,也可能有“更好的”解决方案,这在其他人看来在未知的代码库中可能可行或不可行(给我们)。更好的主意是仅关注所述问题。这是可行的,或者不是。如果是,那怎么办?如果不是,那就说不是,恕我直言。
—
code_dredd