1Boost 纵览、构建与安装

上传人:ldj****22 文档编号:35421227 上传时间:2018-03-15 格式:PDF 页数:6 大小:1.18MB
返回 下载 相关 举报
1Boost 纵览、构建与安装_第1页
第1页 / 共6页
1Boost 纵览、构建与安装_第2页
第2页 / 共6页
1Boost 纵览、构建与安装_第3页
第3页 / 共6页
1Boost 纵览、构建与安装_第4页
第4页 / 共6页
1Boost 纵览、构建与安装_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《1Boost 纵览、构建与安装》由会员分享,可在线阅读,更多相关《1Boost 纵览、构建与安装(6页珍藏版)》请在金锄头文库上搜索。

1、90程 序 员技 术Technology是个引人注目的年份,中国扩大航天探测、北京奥运这一年C+社群也将有大事发生 :C+标准委员会预计于2008发布新标准2.0版, 是继1998标准发布后的又一个大动作(此前标准委员会曾于2003发布一些小修订, 无足道哉) 。 此刻, 迈向2008的2007开春之际, 正是C+程序员摩拳擦掌投入此件大事的好时机。 而一旦开始关切这个事件,你一定会常常听到“Boost”这个名称, 这对在C+圈子讨生活以及常年关切C+发展的人并不陌生即使你从来没有认识过它或只是雾里看花一知半解。 本专栏将以十来篇文章引领你运用Boost并透彻认识其技术,包括分析其关键源码。B

2、oost 的缘由与近况Boost可以说是个C+程序库开发社群与平台, 最初由一群热心的C+标准委员会成员创立, 目前已扩大到C+社群的数千名程序员。 这个组织开发出来的众多程序库统称为Boost程序库。 由于其成员大多对C+发展具有重大影响力,所以Boost程序库被业界公认为 “准标准” 程序库其为“准标准” 的威力由C+ Standard 2.0新纳入的14项组件 (记录于TR1,后述)中有10项奠基于Boost程序库可见一斑。Boost程序库的宗旨是成为一个可运作于现代操作系统(包括Unix和Windows及其各种变体) 、 经公开自由之同僚覆审 (public free peer- re

3、viewed) 后的可移植、 附源码、 良好搭配C+标准程序库的一个C+程序库。 它的软件和技术文件都是免费的, 在遵循Boost Software License(详见Boost下载包内的LICENSE_1_0.txt)的原则下你可以使用、复制、显示、散布、执行、传输、衍生Boost程序库源码。因此,使用Boost程序库,除了学习成本,零成本!认识 Boost 程序库“Boost程序库” 是个总称, 内含众多大小不一的程序库,其目前文件所列清单共有69个。 表1是Boost文件所列的程序库分类, 各分类涵盖内容有可能重复。 略有涉猎者可从表1收一目了然之效, 从未接触者亦可从中获得一些概念。

4、当我们想表现某个Boost程序库时, 一般常用这种表示法(首字大写) :Boost.Pool,Boost.Array,Boost.Regex有时也可能直接写出以命名空间 (boost:) 为前缀的classes,像这样 (全部小写) :boost:pool_object,boost:array,boost:regexBoost纵览、构建与安装本文为“Boost 技术与应用”系列文章第一篇,探讨 Boost 程序库的缘由、产品组成与结构、网络资源与下载、构建与安装。阅读本文可对 Boost 有全盘性的概括认识,并帮助你在你的计算机上备妥 Boost 产品,做为 Boost 辅助编程(下一篇起)的

5、前期准备。读者基础:? 具备C+ templates编程经验与C+标准程序库使用经验。? 本文测试环境:VC6, VS2003? 本系列文章将汇整至编写中的 Boost运用与源码剖析? 关键术语:C+ Standard Library, Boost, TR12008关于 Boost 命名读者想必对 “Boost” 这个命名感到好奇。 此字原义是 “推动 ;帮助;促进;提高;增加” 。 根据文献说明,Beman Dawes和RobertKlarer两人于1998年法国Sofia Antipolis的C+ 委员会议程中共进晚餐时,倡议一个新的程序库开发企划。Robert提到Herb Sutter(

6、现任C+标准委员会主席) 曾给出一份玩笑性提案, 打算开发一个名为 “Booze” (含酒精饮料) 的新语言把Java比下去, 于是无意间不知怎地促成了 “Boost” 这一名称。 虽然只是个临时性命名,却从来没有人想要换掉它。B o o s t 技术与应用系列文章1C / C + + Programmer91技 术Boost各程序库的容量差异极大,Boost.Conversion很小,Boost.Graph很大。 下面挑几个有趣的程序库为各位做简介。?Boost.Regex这个程序库实践Regular Expressions(正则算式) , 用以解决大量的模式匹配(pattern- matc

7、hing)问题,常用来处理大型字符串、搜寻未能精确指示之子字符串 (i n e x a c tsubstrings) 、 根据某种格式将字符串切割为词法单元 (tokenizea string) 。C+程序员借助其它语言如Perl、awk、sed以解决此类问题的时代终于可以过去了。?Boost.Bind这是std:bind1st和std:bind2nd的泛化, 允许以一致的语法针对任何 “类函数”(包括function pointers, function objects,member function pointers)进行自变量绑定,并经由嵌套(nested) 达到复合功能。 它不要求cl

8、asses提供所谓result_type,first_argument_type, second_argument_type。 它的出现消弭了ptr_fun, mem_fun, mem_fun_ref 的必要。它通常和STL算法并用, 亦往往和Boost.Function并用。?Boost.Any这个容器可储存异类 (heterogeneous types) 元素, 不似STL容器要求元素需为相同类型。? Boost.Smart_Ptr提供众多智能型指针, 其中shared_ptr最被广泛使用, 带来reference counting效果。? Boost.Pool提供一个池式内存配置器(po

9、oledmemory allocator) ,在大量小型区块的需求情况下, 可大幅度节省空间并缩短存取时间。? Boost.Serialization这个程序库解决了STL容器的最大困扰与最严重缺陷。从此STL容器可以像MFC容器那般以一个简单动作就将整个容器内容写入(或读出)硬盘,像这样:oa data; (或 ia )其中oa和ia是所谓archive, 而data必须是个支持Serialization(也就是运用Boost.Serialization写成) 的class object, 或者是个STL容器或一般变数。 这个程序库对待STL容器采用非侵入式(intrusive)设计,所以S

10、TL容器完全不必修改就可获得这份serialization大礼, 非常令人兴奋。Boost 程序库与 TR1目前已有10个Boost程序库被收纳到C+标准委员会的Library Technical Report (TR1) , 为进一步成为 C+ Standard2.0的一部分而准备。 预计即将来临的TR2会涵盖更多Boost程序库。表2让读者回顾一下C+ Standard 1.0(C+98)纳入的标准程序库涵盖范围,表3是TR1清单。TR1记录C+ Standard 2.0中以标准程序库扩充形式呈现的C+语言新特性。 虽然C+ Standard 2.0尚未面世, 但TR1说明 字符串与文本处

11、理容器迭代器算法函数对象和高阶处理泛型编程模板元编程 预处理器之元编程并发设计数学和数值正确性与测试数据结构输入 /输出跨语言支持 内存解释编程界面杂项编译器调校Boost 程序库分类 S t r i n g a n d t e x t p r o c e s s i n gC o n t a i n e r sI t e r a t o r sA l g o r i t h m sF u n c t i o n O b j e c t s a n d h i g h e r - o r d e rp r o g r a m m i n g G e n e r i c P r o g r a

12、m m i n gT e m p l a t e M e t a p r o g r a m m i n g P r e p r o c e s s o r M e t a p r o g r a m m i n gC o n c u r r e n t P r o g r a m m i n gM a t h a n d n u m e r i c sC o r r e c t n e s s a n d t e s t i n gD a t a s t r u c t u r e sI n p u t / O u t p u tI n t e r - l a n g u a g e s u

13、 p p o r t M e m o r yP a r s i n gP r o g r a m m i n g I n t e r f a c e sM i s c e l l a n e o u sB r o k e n c o m p i l e r w o r k a r o u n d s涵盖之程序库 c o n v e r t i o n / l e x i c a l _ c a s t , f o r m a t , i o s t r e a m , r e g e x ,s p i r i t , s t r i n g _ a l g o , t o k e n i z

14、e r , w a v ea r r a y , d y n a m i c _ b i t s e t , g r a p h , m u l t i _ a r r a y ,m u l t i _ i n d e x , p o i n t e r _ c o n t a i n e r , p r o p e r t y _ m a p , v a r i a n t g r a p h , i t e r a t o r s , o p e r a t o r s , t o k e n i z e rg r a p h , m i n m a x , s t r i n g _ a

15、 l g o , u t i l i t y , r a n g eb i n d , m e m _ f n , f u n c t i o n , f u n c t i o n a l , f u n c t i o n a l /h a s h , l a m b d a , r e f , s i g n a l s , r e s u l t _ o f c a l l _ t r a i t s , c o n c e p t _ c h e c k , e n a b l e _ i f , i n _ p l a c e _ f a c t o r y ,t y p e d

16、_ i n _ p l a c e _ f a c t o r y , o p e r a t o r s , p r o p e r t y _ m a p ,s t a t i c _ a s s e r t , t y p e _ t r a i t sm p l , s t a t i c _ a s s e r t , t y p e _ t r a i t s p r e p r o c e s s o rt h r e a dm a t h , n u m e r i c / c o n v e r s i o n , i n t e g e r , i n t e r v a l , m a t h /c o m m o n _ f a c t o r , m a t h / o c t o n i o n , m a t h / q u a t e r n i o

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号