标签: c++ lambda c++14 smart-pointers weak-references
我有一个类将lambda函数(如std::function<void()>)注册为它将生成的事件的回调。我正在使用shared_ptr进行内存管理,我需要注意不要创建引用循环。我不希望事件供应商拥有回调,因此它存储std::weak_ptr<std::function<void()>>。
std::function<void()>
shared_ptr
std::weak_ptr<std::function<void()>>
不幸的是,我不确定如何制作其中一个!要创建拥有shared_ptr实例,我需要传入指向无主的堆分配的lambda的指针。 lambda有new的版本吗?
new