auto_deleter 使用,定义自动销毁对象

2023-10-26

template <typename T> struct auto_deleter
{
    typedef void(*D)(T*);//函数指针定义
    T* data;
    D deleter;

    auto_deleter(T* _data, D _deleter):data(_data), deleter(_deleter)
    {

    }

    ~auto_deleter()
    {
        if (data)
        {
            deleter(data);
        }
    }

    T* release()
    {
        T* result = data;
        data = 0;
        return result;
    }
};

 

在使用时,把销毁函数传入,自动清除内存或文件描述符等

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

auto_deleter 使用,定义自动销毁对象 的相关文章

随机推荐

  • js实现文本分段

    本菜鸟的第一篇博文 最近在学习js 可能有很多不严谨或者不正确的地方 欢迎指正 在 net开发中 有时候会从后台数据库拉来一大串文本 放到页面上显示 那么问题来了 大段的文本中需要分段 一般分段在后台都用转义字符 n来表示 但是我们现在要把
  • 基于Unity ARFoundation的传送门项目 - Augmented Reality Portal based on ARFoundation in Unity

    窗 Window 1 Unity组件 Components 2 着色器 Shaders 1 DepthMask shader 门 Door 1 组件 Components 1 AR Camera 2 InnerWorld 3 Door 4
  • 华为OD机试 - 最大化控制资源成本(Java)

    题目描述 公司创新实验室正在研究如何最小化资源成本 最大化资源利用率 请你设计算法帮他们解决一个任务混部问题 有taskNum项任务 每个任务有开始时间 startTime 结束时间 endTime 并行度 parallelism 三个属性
  • 线程池

    1 线程池的概念 线程池 其实就是一个容纳多个线程的容器 其中的线程可以反复使用 省去了频繁创建线程对象的操作 无需反复创建线程而消耗过多资源 最初是程序员自己开发线程池 用ArrayList
  • fatal: unable to access ‘https://github.com/.../‘: Failed to connect to github.com port 443: 连接超时

    虚拟机终端fatal unable to access https github com Failed to connect to github com port 443 连接超时 浏览器输入ipaddress com 查询如下两个域名 并
  • 用k8s部署nginx

    1 4 用kubernetes部署 容器化应用 1 4 1 kubectl的常见命令 查看所有命令 kubectl help 查看控制器 kubectl get deployment 查看pod kubectl get pod 查看服务 k
  • 2023年第14届蓝桥杯题解

    这里写目录标题 日期统计 01 串的熵 冶炼金属 飞机降落 接龙数列 子串简写 日期统计 小蓝现在有一个长度为 100 的数组 数组中的每个元素的值都在 0 到 9 的范围之内 数组中的元素从左至右如下所示 5 6 8 6 9 1 6 1
  • es报错:Exception in thread “main“ SettingsException[Failed to load settings from [elasticsearch.yml]]

    配置参数空格问题 Failed to load settings from 小小的 我 2017 10 12 17 41 00 3068 收藏 版权 Exception in thread main SettingsException Fa
  • centos7.4 docker容器连不上宿主机mysql

    docker容器连不上宿主机mysql 文章目录 docker容器连不上宿主机mysql 一 docker和宿主机网络 1 在docker容器里localhost并不是指宿主机的localhost 2 在docker运行时就和宿主机建立了虚
  • 信息存储服务器机房有辐射吗,服务器机房有辐射大吗

    弹性云服务器 ECS 弹性云服务器 Elastic Cloud Server 是一种可随时自助获取 可弹性伸缩的云服务器 帮助用户打造可靠 安全 灵活 高效的应用环境 确保服务持久稳定运行 提升运维效率 三年低至5折 多种配置可选了解详情
  • arm嵌入式led灯闪烁实验报告_led闪烁实验报告.doc

    led闪烁实验报告 篇一 单片机实验 LED灯闪烁实验 实 验 报 告 课程名称 实验项目 2016年 3 月 13 日 实验目的 1 掌握51单片机开发板的使用步骤 2 掌握51单片机开发板所需软件的安装过程 3 以LED灯闪烁为例子 掌
  • express:webpack dev-server中如何将对后端的http请求转到https的后端服务器中?

    在上一篇文章 Webpack系列 在Webpack Vue开发中如何调用tomcat的后端服务器的接口 我们介绍了如何将对于webpack dev server的数据请求转发到后端服务器上 这在大部分情况下就够用了 然后现在问题又来了 在生
  • qt中ui的 使用介绍

    1 什么是ui ui通常是用Qt 设计师设计出来的界面文件的后缀 通常情况下ui是一个指向这个界面类的指针 ui gt 一般就是用来访问这个界面类里面的控件 例如你的ui文件里有一个叫okButton的QPushButton 你就可以这样来
  • Apache Hook机制解析(下)——实战:在自己的代码中使用Apache的钩子

    在前文 Apache Hook机制解析 上 钩子机制的实现 和 Apache Hook机制解析 中 细节讨论 的基础上 我们对Apache的钩子机制已经有了较多的了解 下面的代码实战演示了一个日志钩子的声明 定义和使用 在VC6 0上编译测
  • MMClassification(一)

    1 介绍 一句话总结 基于pytorch的强大模块化组件式的分类框架 相关资料 中文文档 GitHub 课程学习 深入学习直接使用官方文档学习效果最好 本文记录学习过程知识以便快速回顾和查找 其中包含个人的学习总结 仅做参考 2 项目结构
  • 刷脸支付还可以带来新的互动体验和应用

    支付宝领先的微信支付是依附于电商的绝对优势 微信支付凭借其10亿用户的优势 正在与支付宝抗衡 近几年来 移动支付的快速发展带动了支付技术的变革 nfc支付 二维码支付 指纹支付等支付方式活跃在我们的日常生活中 随着人脸识别技术的成熟和人们对
  • 三菱FX3U——ST编程红绿灯

    一个循环周期是32秒 南北向绿灯和东西向红灯亮10秒后 两侧黄灯亮3秒 黄灯在闪烁3秒 南北向红灯和东西向绿灯亮10秒 两侧黄灯亮3秒 黄灯在闪烁3秒 添加启动和停止 按下启动按钮 使定时器复位 通过置位M0 让标签的状态赋值给输出点 通过
  • DataGrip的简单使用笔记

    目录 导入数据 关键字导航 全局搜索 结果集搜索 导航到关联数据 结果集数据过滤 行转列 变量重命名 自动检测无法解析的对象 权限定字段名 通配符自动展开 大写自动转换 sql格式化 多光标模式 代码注释 列编辑 https pan bai
  • rk3399 高可靠OTA升级

    https blog csdn net m0 37631324 article details 106254910
  • auto_deleter 使用,定义自动销毁对象

    template