如何自定义std::shared_ptr的删除器

   2024-10-01 2700
核心提示:要自定义std::shared_ptr的删除器,需要使用std::shared_ptr的构造函数,其中可以传递一个lambda函数来定义自定义的删除器。下面

要自定义std::shared_ptr的删除器,需要使用std::shared_ptr的构造函数,其中可以传递一个lambda函数来定义自定义的删除器。下面是一个示例:

#include <memory>#include <iostream>struct MyData {    int value;    MyData(int v) : value(v) {}};int main() {    std::shared_ptr<MyData> ptr(new MyData(10), [](MyData* data) {        std::cout << "Custom deleter called for value: " << data->value << std::endl;        delete data;    });    // 使用自定义的删除器    // 输出: Custom deleter called for value: 10    return 0;}

在上面的示例中,我们使用lambda函数作为std::shared_ptr的删除器,当ptr超出作用域时,lambda函数会被调用来释放资源。您可以根据自己的需求来定义删除器的行为。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号