设为首页 加入收藏

TOP

4.2 C++ Boost 内存池管理库(三)
2023-08-26 21:10:33 】 浏览:220
Tags:4.2 Boost 池管理
时,需要为自定义类型提供一个内部引用计数器的实现。

#include <iostream>
#include <boost/smart_ptr.hpp>
#include <boost/smart_ptr/intrusive_ref_counter.hpp>

using namespace std;
using namespace boost;

struct data
{
  int m_count = 0;
  ~data()
  {
    cout << "结束." << endl;
  }
};

// 递增
void intrusive_ptr_add_ref(data* p)
{
  p->m_count = p->m_count + 10;
}

// 递减
void intrusive_ptr_release(data* p)
{
  if (--p->m_count == 0)
  {
    delete p;
  }
}

int main(int argc,char *argv[])
{
  // 使用自定义引用计数
  typedef intrusive_ptr<data> counted_ptr;
  counted_ptr p(new data);

  std::cout << "引用数: " << p->m_count << std::endl;

  counted_ptr weak_p(p.get(), false);
  std::cout << "引用数: " << p->m_count << std::endl;

  std::system("pause");
  return 0;
}

本文作者: 王瑞
本文链接: https://www.lyshark.com/post/bc8ff67e.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【QT性能优化】QT性能优化之QT6框.. 下一篇7.1 C++ STL 非变易查找算法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目