讲述Boost库使用说明及其介绍

开发 后端
Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。下面进行学习说明。

Boost库由C++标准委员会库工作组成员发起,在C++社区中影响甚大,其成员已近2000人。 Boost库为我们带来了***、最酷、最实用的技术,是不折不扣的“准”标准库,Boost中比较有名气的有这么几个库:

Regex  
正则表达式库  
 
Spirit  
LL parser framework,用C++代码直接表达EBNF  
 
Graph  
图组件和算法  
 
Lambda  
在调用的地方定义短小匿名的函数对象,很实用的functional功能  
 
concept check  
检查泛型编程中的concept  
 
Mpl  
用模板实现的元编程框架  
 
Thread  
可移植的C++多线程库  
 
Python  
把C++类和函数映射到Python之中  
 
Pool  
内存池管理  
 
smart_ptr 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.


Smart Pointers in Boost,哦,这篇文章可以查到,CUJ是提供在线浏览的。Boost总体来说是实用价值很高,质量很高的库。并且由于其对跨平台的强调,对标准C++的强调,是编写平台无关,现代Boost库的开发者必备的工具。但是Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。

并且很多Boost中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。

其实,对于这个问题,Bjarne已经宣传了十年。早在99年的时候Bjarne就写了“Learning C++ as A New Language”,并在好几篇技术访谈(这里,这里,这里,还有这里)里面提到如何正确对待和使用C++中支持的多种抽象机制的问题。Andrew Koenig也写了一本现代C++教程《Accelerated C++》(这本书后面还会提到)。

然而这么多年来,Boost库社群的状况改善了吗?就我所知,就算有改善,也是很小的。学习者还是盲目钻语言细节,只见树木不见森林;网上还是弥漫着各种各样的“技术”文章和不靠谱的“学习C++的XX个建议”;一些业界的有身份的专家还是在一本接一本的出语言孔乙己的书(写一些普通程序员八辈子用不着的技巧和碰不着的角落);而业界真正使用C++的公司在面试的时候还总是问一些边边角角的细节问题,而不是考察编程的基本素养(不,掌握所有的语言细节也不能让你成为一个合格的程序员)。这个面试理念是错误的。#t#

估计其背后的推理应该是“如果这个家伙不知道这个细节,那么估计他对语言也熟悉不到哪儿去;而如果他知道,那么虽然他可能并不是好的程序员,但我们还是能够就后一个问题进一步测试的”,这个理念的问题在于,对语言熟悉到一定程度(什么程度后面会具体建议)

就已经可以很好的编程了(剩下的只需查查文档);而很多公司在测试“对语言熟悉程度”的时候走得明显太远了(比如,问临时对象生命期和析构顺序当然是无可厚非的,但问如何避免一个类被拷贝或者如何避免其构建在堆上?);当然,有些语言知识是必须要提前掌握的,具体有哪些后面会提到,面试的时候并非不能问语言细节,关键是“问哪些”。

责任编辑:chenqingxiang 来源: 清华大学出版社
相关推荐

2010-01-07 18:19:01

JSON异步

2010-05-27 14:02:04

SVN使用说明

2010-04-15 11:05:51

Oracle客户端配置

2009-12-31 09:42:41

ADO对象模型

2009-12-29 14:28:58

ADO数据

2009-12-18 15:11:50

ADO.NET类

2010-01-08 14:27:45

JSON 帮助

2010-01-05 15:48:51

JQuery缓存

2010-01-08 09:03:38

返回JSON数据

2010-01-06 16:53:57

JS两种语法

2013-10-31 10:59:41

Clouda使用

2010-01-13 13:58:49

C++编译模式

2009-12-22 10:43:48

ADO.NET类库

2010-06-04 09:12:23

Linux性能测试工具

2009-12-18 17:06:37

ADO.NET 数据库

2019-09-29 14:33:30

Redis集合元素

2009-12-28 11:34:22

WPF处理消息

2011-03-15 10:00:01

NetfilterIPTables

2010-06-03 13:49:04

Sendmail 配置

2010-05-27 14:28:41

TortoiseSVN
点赞
收藏

51CTO技术栈公众号