代码改变世界

随笔分类 -  c++_boost

boost any库

2016-08-18 16:10 by youxin, 613 阅读, 收藏, 编辑
摘要: 转: 原理 c++是一个强类型的语言,要实现一个万能类型可以考虑用void*来保存数据,然后用类型转换进行操作,如: 但是这样的写法有一个明显的缺点就是类型不安全。 显然我们可以用template来改进我们的程序: 但是这样我们好像就没有解决问题:vector<myany> 好吧,这里就写不下去了。 阅读全文

boost checked_delete提升安全性

2016-08-05 10:06 by youxin, 369 阅读, 收藏, 编辑
摘要: checked_delete提升安全性 阅读全文

stl 比较和boost LessThanComparable

2016-06-23 13:02 by youxin, 2358 阅读, 收藏, 编辑
摘要: C++ STL的几种常用“比较”概念简述 在C++的现行标准(C++ 98)中,由于没有类似“接口”这样的东西,我们在泛型编程时往往只能对模板类型作一些假设,要求其符合某个需求清单,也就是属于某个概念。这只是一种人 为的约定,一旦该约定未被遵守,编译器可能会无法有效地发现问题原因所在。不过,在即将发 阅读全文

c++ 解析json

2015-10-26 17:02 by youxin, 2258 阅读, 收藏, 编辑
摘要: c++解析json有很库,boost,jsoncpp等。 boost解析json 要包含头文件: #include <boost/property_tree/ptree.hpp>#include <boost/property_tree/json_parser.hpp> ofstream myOfs 阅读全文

boost pool 和 object_pool

2015-10-12 22:04 by youxin, 3110 阅读, 收藏, 编辑
摘要: 内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备... 阅读全文

boost::ref

2015-10-09 00:07 by youxin, 768 阅读, 收藏, 编辑
摘要: STL和Boost中的算法和函数大量使用了函数对象作为判断式或谓词参数,而这些参数都是传值语义,算法或函数在内部保修函数对象的拷贝并使用,例如:#include "stdafx.h"#include "boost/utility/result_of.hpp"#include "boost/typeo... 阅读全文

boost enable_shared_from_this

2015-08-13 23:02 by youxin, 718 阅读, 收藏, 编辑
摘要: 关于shared_ptr和weak_ptr看以前的:http://www.cnblogs.com/youxin/p/4275289.htmlThe header defines the class template enable_shared_from_this. It is used as a ... 阅读全文

boost::any 用法

2015-04-23 22:13 by youxin, 10851 阅读, 收藏, 编辑
摘要: boost::any可以存放任何类型的C++类型,也可以是用户自定义的类型。非常方便,可以很方便的满足在运行过程中判断数据类型,从而进行相关的操作。函数原型:// In header: class any {public: // construct/copy/destruct any(); a... 阅读全文

boost单元测试框架

2015-04-23 18:10 by youxin, 1382 阅读, 收藏, 编辑
摘要: 头文件: #include <boost/test/unit_test.hpp> 编译加:-lboost_unit_test_framework 单元测试: 需要定义BOOST_TEST_MAIN做为主测试入口 http://www.ibm.com/developerworks/cn/aix/lib 阅读全文

shared_ptr的线程安全

2015-04-22 17:59 by youxin, 4124 阅读, 收藏, 编辑
摘要: 1.9 再论shared_ptr 的线程安全虽然我们借shared_ptr 来实现线程安全的对象释放,但是shared_ptr 本身不是100% 线程安全的。它的引用计数本身是安全且无锁的,但对象的读写则不是,因为shared_ptr 有两个数据成员,读写操作不能原子化。根据文档11,shared_... 阅读全文

boost编译很慢的解决方法

2015-04-08 16:10 by youxin, 2035 阅读, 收藏, 编辑
摘要: 场景:使用boost库的正则模块时出现编译超慢的情况,看了头文件#include 的引用关系,它依赖的头文件相当多,这应该就是根本原因吧。目前知道可行的方案只有使用预编译头。vs放到stdafx.h后,就编译一次,然后其他需要的地方,会去一个本地的pch文件里.一些。”“VC创建项目时自动创建的预编... 阅读全文

boost implicit_cast

2015-04-06 18:45 by youxin, 1164 阅读, 收藏, 编辑
摘要: 在stackoverflow上看到这个帖子, 于是发现了boost::implicit_cast这个小东西.先来看看这段代码:struct top {};struct mid_a : top {};struct mid_b : top {};struct bottom : mid_a, mid_b ... 阅读全文

boost circular buffer环形缓冲类

2015-03-23 17:13 by youxin, 1434 阅读, 收藏, 编辑
摘要: Boost.Circular_buffer维护了一块连续内存块作为缓存区,当缓存区内的数据存满时,继续存入数据就覆盖掉旧的数据。它是一个与STL兼容的容器,类似于 std::list或std::deque,并且支持随机存取。circular_buffer被特别设计为提供固定容量的存储大小。当其容量被... 阅读全文

boost 智能指针intrusive_ptr

2015-03-10 15:44 by youxin, 894 阅读, 收藏, 编辑
摘要: boost::intrusive_ptr一种“侵入式”的引用计数指针,它实际并不提供引用计数功能,而是要求被存储的对象自己实现引用计数功能,并提供intrusive_ptr_add_ref和intrusive_ptr_release函数接口供boost::intrusive_ptr调用intrusi... 阅读全文

boost atomic

2015-03-10 14:18 by youxin, 507 阅读, 收藏, 编辑
摘要: 文档:http://www.boost.org/doc/libs/1_53_0/doc/html/atomic.htmlPresenting Boost.AtomicBoost.Atomicis a library that providesatomicdata types and operatio... 阅读全文

Boost scoped_ptr scoped_array 以及scoped_ptr与std::auto_ptr对比

2015-02-27 11:46 by youxin, 665 阅读, 收藏, 编辑
摘要: boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include #include #include class implementation{public: ~impleme... 阅读全文

boost shared_ptr weak_ptr

2015-02-05 17:01 by youxin, 819 阅读, 收藏, 编辑
摘要: 文档: http://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htm shared_ptr构造有个原型 Introduction The shared_ptr class template stores a pointer to 阅读全文

boost noncopyable类

2015-02-03 10:47 by youxin, 1584 阅读, 收藏, 编辑
摘要: 1. 当声明一个类时,编译器会自动为该类生成默认构造函数,复制构造函数,赋值操作符以及析构函数;2.自动生成的各个函数和操作符都是public的;3.当声明一个类不允许复制时,可以将一个类的复制构造函数和赋值操作符声明为private,但是实际中,一般写一个noncopyable类,让不允许使用复制... 阅读全文

c++ 库 boost安装

2014-12-26 14:21 by youxin, 5010 阅读, 收藏, 编辑
摘要: http://blog.chinaunix.net/uid-12226757-id-3427282.htmlubuntuapt-get install libboost-dev全部:apt-get install libboost-all-dev看有些资料写的:apt-get install lib... 阅读全文
点击右上角即可分享
微信分享提示