ElementWrapper

ElementWrapper作为POD类型的数据包装器,用于配合ThreadLocalPtr管理POD类型的指针对象及其析构过程。本文介绍其主要成员函数的功能,包括设置、释放指针及析构器等。

ElementWrapper 为一个 POD 类型数据的包装器,包含 POD 类型的指针对象和此 POD 指针对象对应的析构器,结构体原型如下:

struct ElementWrapper {
  ///\brief 处理,这里会调用析构器的dispose,一般是做清除工作
  bool dispose(TLPDestructionMode mode);

  ///\brief 释放对POD对象指针的拥有权
  void* release();

  ///\brief 设置POD对象的拥有权,使用默认的析构器SimpleDeleter
  template <class Ptr>
  void set(Ptr p);

  ///\brief 设置POD对象指针及相对应的析构器
  template <class Ptr, class Deleter>
  void set(Ptr p, Deleter d);

  ///\brief 清除析构器
  void cleanup();

  void* ptr;
  DeleterBase* deleter;
  bool ownsDeleter;
};

此结构体是配合 ThreadLocalPtr 而定义的结构体,后续会分析 ThreadLocalPtr 中的实现逻辑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值