
Boost
pizi0475
这个作者很懒,什么都没留下…
展开
-
智能指针的标准之争:Boost vs. Loki
撰文/马维达 2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯群岛上分别召开了两次C++标准会议。会议的内容之一是对一项新的C++特性提议——智能指针(Smart Pointer)——进行讨论。本文将对可能成为C++新标准的两种智能指针方案(Boost vs. Loki)进行介绍和分析,并给出了相应的使用实例。关键词:智能指针 C++ Boost Loki 在现在的标转载 2010-03-25 09:15:00 · 1414 阅读 · 0 评论 -
shared_ptr用法
头文件: "boost/shared_ptr.hpp"<br />几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了控制被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计费降为零,没有对象再需要这个共享的对象,这个对象就自动被销毁了。引用计数智能指针可以分为插入式(intrusive)和非插入式(non-intrusive)两类。前者要求它所管理的类提供明确的函数或数据成员用于管理引用计数。这意味着在类的设计时就必须预见到它将与一个插入式的引用计数智能指针一起转载 2011-04-11 17:59:00 · 2021 阅读 · 0 评论 -
boost::any 与 boost::variant 的区别
在使用boost::any 和 boost::variant的过程中遇到几个小问题,按个人理解对二者做了一下比较。令人最遗憾的是boost::any与boost::serialization 不兼容。 More...boost::any* 非模板类这意味着即时是跨dll也可以方便地使用,支持无限种变量。* boost::serialization 不支持。有人对此进行了激烈的讨论,在这里。bo转载 2011-06-08 14:06:00 · 1574 阅读 · 0 评论 -
Boost::Variant
Variant 库如何改进你的程序?对用户指定的多种类型的进行类型安全的存储和取回在标准库容器中存储不同类型的方法变量访问的编译期检查高效的、基于栈的变量存储Variant 库关注的是对一组限定类型的类型安全存储及取回,即非无类的联合。Boost.Variant 库与 Boost.Any 有许多共同之外,但在功能上也有不同的考虑。在每天的转载 2011-06-08 14:07:00 · 4626 阅读 · 0 评论 -
Boost::Any
Any 库如何改进你的程序?任意类型的类型安全存储以及安全的取回在标准库容器中存放不同类型的方法可以在无须知道类型的情况下传送类型Any库提供一个类型, any, 它允许存入任意类型且稍后取回,而不损失类型安全性。它有点象是可变类型的化合物:它可以持有任意类型,但你必须知道类型才能取回值。有很多次你想在同一个容器中存入互不相关的类型。有很多次某些代码转载 2011-06-08 14:10:00 · 5684 阅读 · 0 评论 -
Boost库之tuple、any和variant的使用
Boost库中提供了三种比较实用的数据结构,分别是tuple、any和variant。它们的共同优点就是支持类型安全地存储和获取数据。灵活地使用这三种数据结构,对我们进行程序设计无疑是大有裨益的。下面分别加以介绍。tuple支持一次直接声明和使用n个不同数据类型的变量。对于有多个返回值的函数,我们再也不用定义一个结构体作为函数的返回值类型了,也不用通过对参数进行引用来传出返回值(这样返回值的概念不转载 2011-06-08 14:11:00 · 2135 阅读 · 0 评论 -
Boost - 多线程-boost recursive_mutex用法
Author:QQ174554431 比较一下,就知道这个函数怎么用,效果如何. C++代码 #include void run() { for (int i = 0; i { std::cout } } int main(int argc,转载 2013-01-15 16:36:33 · 2486 阅读 · 0 评论 -
BOOST 线程完全攻略
BOOST 线程完全攻略 - 基础篇jackyhwei 发布于 2010-11-01 09:26来自:优快云博客boost标准stl库的出现,让我眼前一亮,boost所推行的简洁代码概念和模板概念,让我有了清风扑面的感觉,本文将介绍如何使用boost::thread来取代不太安全的MFC线程编程。TAG: boost 多线程转载 2013-01-17 15:39:42 · 2089 阅读 · 0 评论 -
编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010
vs2008编译boost 【一、Boost库的介绍】Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。转载 2013-01-17 15:44:25 · 1671 阅读 · 0 评论 -
boost锁的概述
● boost锁的概述boost库中提供了mutex类与lock类,通过组合可以轻易的构建读写锁与互斥锁。 ▲ mutex对象类mutex类主要有两种:boost::mutex,boost::shared_mutex,其中mutex有lock和unlock方法,shared_mutex除了提供lock和unlock方法外,还有shared_lock和shar转载 2013-04-18 19:47:20 · 1352 阅读 · 0 评论 -
Boost多线程编程
Boost多线程编程背景• 今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序; GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。• 跨平台 创建线程•转载 2013-04-18 20:02:55 · 1549 阅读 · 0 评论 -
Boost Thread 编程指南
0 前言标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序;GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的转载 2013-12-29 16:47:29 · 1464 阅读 · 0 评论 -
boost库中thread多线程详解
1. 概述线程就是,在同一程序同一时间内允许执行不同函数的离散处理队列。 这使得一个长时间去进行某种特殊运算的函数在执行时不阻碍其他的函数变得十分重要。 线程实际上允许同时执行两种函数,而这两个函数不必相互等待。一旦一个应用程序启动,它仅包含一个默认线程。 此线程执行main() 函数。 在main()中被调用的函数则按这个线程的上下文顺序地执行。 这样的程序称为单线程程序。反转载 2013-12-29 16:40:11 · 4878 阅读 · 0 评论 -
Boost多线程编程
背景• 今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序; GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。• 跨平台 创建线程• 头文件 namespace转载 2013-12-29 16:45:45 · 1349 阅读 · 0 评论 -
boost多线程库使用指南
一、基本使用头文件 namespace boost { class thread; class thread_group;} 1、threadthread的构造形式为explicit thread(const boost::function0&);如果你对boost::function不熟,那么我听我简短的介绍一下:boost::f转载 2013-12-30 08:45:10 · 13498 阅读 · 0 评论 -
c++ shared_ptr智能指针使用注意事项
shared_ptr在boost中地位相当重要,其行为最接近原始指针,但又比指针更加安全,甚至还能提供基本的线程安全保证。它基本上解决了在使用c++开发过程中不可避免的使用指针而遇到的许多问题,常见的毫无疑问是内存泄漏和内存的提前释放,还有一些关于指针内存申请而产生的异常问题等。而要想较好的使用shared_ptr来完全取代指针绝非易事。下面简要说说使用shared_ptr需要注意的问题。转载 2013-12-17 21:38:15 · 1487 阅读 · 0 评论 -
boost::thread之内部干将interrupt_wait
BOOST的Thread库博大精深,有很多的多线程概念在里面,今天就对其中很多call都用到的interrupt_wait的实现进行解释。首先,在BOOST文档中,有1个不得不看的概念,如下:Predefined Interruption PointsThe following functions are interruption points, which will thro转载 2014-01-16 20:14:15 · 2254 阅读 · 0 评论 -
shared_ptr相关小结
<br />程序中,有些对象的生命周期是静态的可预测的,这时只要把构造销毁的时机硬编码进程序即可;然而有些对象的生命周期却和运行时环境相关(例如在线程间共享对象,无“引用”时销毁),对于这种类型的对象必须借助额外的信息和设施来控制,基于引用计数的封装boost::shared_ptr及其相关设施就是其中一种(我所了解的还有基于标记-清除的GC),下面就易错的地方小结下:一般而言,不要同时使用boost::shared_ptr和其他的管理机制来管理对象的生命周期,这样会发生语义上的矛盾,极有可能出现运行时错误转载 2011-04-11 18:01:00 · 1806 阅读 · 0 评论 -
shared_ptr源码解读
<br />1 介绍<br />众所周知,auto_ptr由于它的破坏性复制语义,无法满足标准容器对元素的要求,因而不能放在标准容器中;如果我们希望当容器析构时能自动把它容纳的指针元素所指的对象删除时,通常采用一些间接的方式来实现,显得比较繁琐。boost库中提供了一种新型的智能指针 shared_ptr,它解决了在多个指针间共享对象所有权的问题,同时也满足容器对元素的要求,因而可以安全地放入容器中。现在我们可以这样写: <br />vector< shared_ptr<Book> > books;<br转载 2011-04-11 17:57:00 · 2780 阅读 · 0 评论 -
boost::any的用法、优点和缺点以及源代码分析
boost::any用法示例:view plaincopy to clipboardprint?#include #include #include typedef std::list list_any; //关键部分:可以存放任意类型的对象 void fill_list(list_any& la) { la.push_back(10)转载 2010-05-05 22:20:00 · 1944 阅读 · 0 评论 -
C++元编程和Boost编程库 (C++ Metaprogramming and Boost MPL )
引论 C++的发展史是一个不断吸收程序设计领域精华和不断积累充实语言特性的过程。它的创造者Stroustrup在这门新的编程语言草创之初就定下了几个基本的目标,二十年过去了,至今这些目标仍然是C++继续发展的指南针。其中他明确指出,这种语言不应强迫程序员使用单一程序设计形式[20];就是说C++语言应该是一种“多种花样”的语言。正是因为Stroustrup这种高瞻远瞩的构想,才使得C转载 2010-05-05 22:25:00 · 2891 阅读 · 0 评论 -
C++ Boost Assign 文档
Copyright © 2003-2004 Thorsten Ottosen译者:nirvana 对Assign的使用,修改和授权须依据Boost软件许可协议 v1.0(参见 http://www.boost.org/LICENSE_1_0.txt)。 C++ Boost Assign 文档(翻译) 1、简介 2、教程 o operator+=() o operator()() o lis转载 2010-05-11 22:01:00 · 1668 阅读 · 0 评论 -
boost源码剖析之:多重回调机制signal
刘未鹏C++的罗浮宫(http://blog.youkuaiyun.com/pongba) boost库固然是技术的宝库,却更是思想的宝库。大多数程序员都知道如何应用command,observer等模式,却不知该如何写一个支持该模式的类。正如隔靴搔痒,无法深入。DDJ上曾有一篇文章用C++实现类似C#的event机制,不过是个雏形,比之boost.Signal却又差之甚远矣。 上篇:架构转载 2010-05-29 10:01:00 · 1784 阅读 · 0 评论 -
boost源码剖析之:boost::multi_array
谢轩 刘未鹏C++的罗浮宫(http://blog.youkuaiyun.com/pongba) Note: 并非新作,是以前和老朋友谢轩写的,也可以在谢轩的blog上找到。 动机 C++是一门自由的语言,允许你自由的表达自己的意图,对不对? 所以我们既然可以new一个一维数组,也应该可以new出多维数组,对不对?先来看一个例子: int* pOneDi转载 2010-05-29 10:05:00 · 1256 阅读 · 0 评论 -
boost源码剖析之:泛型编程精灵type_traits(rev#2)
boost源码剖析之:泛型编程精灵type_traits(rev#2) 刘未鹏C++的罗浮宫(http://blog.youkuaiyun.com/pongba) 动机使用traits的动机一般有三种,分派、效率、使某些代码通过编译。 分派下面有一个模板函数,假设一个动物收容组织提供了它,他们接受所有无家可归的可怜的小动物,于是他们向外界提供了一个函数接受注册。函数看起来像转载 2010-05-29 10:08:00 · 1398 阅读 · 0 评论 -
了解 Boost 单元测试框架
毫无疑问,每个软件产品都需要回归测试套件。在过去,单元测试框架是由测试团队专门开发的。这不但导致测试套件难以维护,而且监视程序执行时间/内存性能等操作无法跨操作系统移植。考虑到这些问题,本系列介绍使用开放源码软件创建高级回归测试框架的方法。本文是 本系列 的第 1 部分,介绍用于 C/C++ 产品的 Boost 单元测试框架。 什么是单元测试?复杂的 C/C++ 代码中很可能有 bug转载 2010-05-29 10:20:00 · 2155 阅读 · 1 评论 -
boost源码剖析之:泛型函数指针类boost::function(rev#3)
boost源码剖析之:泛型函数指针类boost::function(rev#3) 刘未鹏C++的罗浮宫(http://blog.youkuaiyun.com/pongba) Note: 并非新作,03年曾放在blog上,现在这个版本应该是修改后的最终版本。 前奏如你所知,boost库是个特性完备,且具备工业强度的库,众多C++权威的参与使其达到了登峰造极的程度。尤其泛型的强大威转载 2010-05-29 09:59:00 · 1503 阅读 · 0 评论 -
boost源码剖析之:泛型指针类any之海纳百川(rev#2)
boost源码剖析之:泛型指针类any之海纳百川(rev#2) 刘未鹏C++的罗浮宫(http://blog.youkuaiyun.com/pongba) 动机C++是强类型语言,所有强类型语言对类型的要求都是苛刻的,类型一有不合编译器就会抱怨说不能将某某类型转换为某某类型,当然如果在类型之间提供了转换操作符或是标准所允许的一定程度的隐式转换(如经过非explicit构造函数创建临时变转载 2010-05-29 10:07:00 · 1388 阅读 · 0 评论 -
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba)C++的罗浮宫(http://blog.youkuaiyun.com/pongba) 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win3转载 2010-05-29 10:13:00 · 1867 阅读 · 0 评论 -
Boost 库中的实用工具类使用入门
级别: 中级Arpan Sen, 首席工程师, IBM2008 年 9 月 08 日实用工具类开发和维护会耗费程序员的时间。Boost 通过提供几个高质量的库,从而简化了此过程,您可以将这些库轻松集成到现有的代码库中。本文简单概述一些较流行的 Boost 实用工具类,并帮助您了解如何将它们投入使用。实用工具类(utility classes)在几乎任何适当规模的 C++ 项目中转载 2010-05-29 10:22:00 · 1707 阅读 · 0 评论 -
boost源码剖析之:Tuple Types
刘未鹏(pongba)C++的罗浮宫(http://blog.youkuaiyun.com/pongba) Note: 并非新作,04年曾放在blog上,后来删掉了,不过网上到处有转载。这是修改之后的版本。 动机[1]假设你有这样一个函数:它接受两个整型数据并返回它们整除的结果,像这样: int DevideInts(int n,int d){ return n/d转载 2010-05-29 10:04:00 · 1400 阅读 · 0 评论 -
在vs2005中安装boost库
1、在网站下载boost_1_35_0文件包。boost老巢http://www.boost.org/。 2、 由于boost是采用其自己的bjam工具通过命令行进行编译的,所以: 如果在Windows下开启console窗口(单击“开始”按钮,单击“运行”,敲入“cmd”),必须将Visual Studio中C++目录下的环境vcvarsall.bat配置脚本运行一遍,以设置好VC的转载 2010-05-29 10:18:00 · 1643 阅读 · 0 评论 -
准标准库Boost
<br /> 在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 <br />C++各大有名库的介绍——准标准库Boost<br /> Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,转载 2011-03-27 18:24:00 · 1622 阅读 · 0 评论 -
编译 boost
作者:我是小李,欢迎交流 来源:博客园 发布时间:2011-03-12 15:26 阅读:44 次 原文链接 [收藏] <br />理论上,本文适用于boost的各个版本,尤其是最新版本1.45.0;适用于各种C++编译器,如VC6.0(部分库不支持),VS2003,VS2005,VS2008,gcc,C++ Builder等。先总结一下Windows系统。<br />一、下载<br />首先从boost官方主页http://www.boost.org/下载最新版boost安装包(目前最新版转载 2011-05-17 18:04:00 · 1551 阅读 · 0 评论 -
auto_ptr与shared_ptr --- auto_ptr
Roger (roger2yi@gmail.com) 这篇文章试图说明如何使用auto_ptr和shared_ptr,从而使得动态分配对象的使用和管理更安全,方便。除了一般的使用说明外,更主要是说明它们之间的异同 —— 满足需求的不同和开销上的差异。 文章的多数知识都来源于: <!--[if !supportLists]-->1. <!--[endif]-->Exceptional C++(Herb)Item 37 auto_ptr<!--[if !supportLists]-->2. <!--[endif转载 2011-04-11 17:55:00 · 1962 阅读 · 0 评论 -
Boost::thread库的使用
概要通过实例介绍boost thread的使用方式,本文主要由线程启动、Interruption机制、线程同步、等待线程退出、Thread Group几个部份组成。正文线程启动线程可以从以下三种方式启动:第一种用struct结构的operator成员函数启动:[cpp] view plaincopy转载 2014-01-16 20:17:42 · 1782 阅读 · 0 评论