Boost
文章平均质量分 81
hjing1988
这个作者很懒,什么都没留下…
展开
-
boost之pool源码解析
看完了c++设计新思维中的内存池实现,再粗略看下boost中pool的实现。可以看出两者有些相似之处。 查看罗剑锋的boost程序库完全开发指南会发现对内存池pool讲解甚是简单 没有标明任何注意事项,认为使用简单,随便使用,其实里面有很多使用不当,反而会效果更差 boost中有如下几个类型的pool,object_pool,singleton_pool 我们一个一个来进行解析 pool原创 2015-06-23 19:03:13 · 2508 阅读 · 0 评论 -
环形内存circular_buffer
boost中支持环形内存。该内存在一些地方还是蛮实用的。 简单看下具体使用及部分源码,使用和源码相对来说都还是比较简单,易于理解的 与STL接口基本一致 void CCircularBufferTest::TestCircularBuffer() { circular_buffer aa(5); // 预先分配5个sizeof(CTest)的大小空间 aa.push_back原创 2015-07-13 22:20:18 · 5134 阅读 · 1 评论 -
boost之any源码解析
any是一个特殊的容器,它只能容纳一个元素,但元素类型是任意的 使用也比较简单 内部是通过typeinfo的概念实现的。 void CAnyTest::Test1() { CTest1 t1; any any1(t1); try { CTest1 a1 = any_cast(any1); // any_cast内部就是用了typeinfo的概念实现的 } ca原创 2015-07-16 21:44:29 · 465 阅读 · 0 评论 -
boost之variant使用
variant有点类似于C++的联合体union,但是它比union强大,union只能容纳原始类型,variant可以容纳任意类型 源代码看了蛮久,没太看懂,这就是模板的坏处了 简单看下使用举例 class CTest { char szTest_[40]; }; typedef variant var_t; var_t也相当于一个联合体,可以容纳三个中的一个,当然内存大是原创 2015-07-18 21:43:06 · 1045 阅读 · 0 评论