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

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

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

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


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-29 14:28:58

ADO数据

2009-12-31 09:42:41

ADO对象模型

2010-01-08 14:27:45

JSON 帮助

2010-01-05 15:48:51

JQuery缓存

2010-01-08 09:03:38

返回JSON数据

2009-12-18 15:11:50

ADO.NET类

2010-01-06 16:53:57

JS两种语法

2009-12-22 10:43:48

ADO.NET类库

2013-10-31 10:59:41

Clouda使用

2010-06-04 09:12:23

Linux性能测试工具

2010-01-13 13:58:49

C++编译模式

2010-01-11 13:31:03

C++语言

2009-12-18 17:06:37

ADO.NET 数据库

2009-12-15 15:13:07

.NET Framew

2010-05-27 14:28:41

TortoiseSVN

2009-12-21 10:10:25

Oracle产品

2009-12-24 16:20:43

WPF Tooltip
点赞
收藏

51CTO技术栈公众号