通过引用传递的 Lambda 在构造函数中被调用时会运行,但在后来存储在数据成员中时不会运行。
原文中文,约900字,阅读约需3分钟。发表于: 。以下的 C++ 代码会先打印 11.1,然后导致崩溃。Lambda 函数在构造函数内部似乎被正确调用,但在稍后,同样的函数不再起作用!为什么会这样?Lambda 函数是否有有限的生命周期? #include <functional> #include <iostream> class LambdaStore { public: LambdaStore(const...
讨论了C++中Lambda函数的生命周期问题,当Lambda函数被转换为std::function时,会创建临时对象并在构造函数调用后销毁。解决方案是将std::function存储为值而不是引用。