初识boost

初识boost

 

学习c++有十年了,但是还没有怎么用过boost库,08, 09年的时候就听过有这么一个库,但是没有用过,在2014年的时候,用过一点,只是boost的math部分,所以总的来说,对boost库的了解非常至少。这2天大概了解一下boost,发现它的强大之处。它使c++编程不再那么繁琐和低效,boost的理念都是从实际的开发实践中总结而来,所以非常的实用。其实boost库1999就问世了,后来一直不断丰富,发展到今天已经有100多个库。

有了它,你不必要在重复造轮子了,比如circular bufffer这个东西,我在2009年的时候,还自己造过一个,现在想想,如果那个时候我知道boost库就好了,就不用自己再来一遍了。

下面说主要的一些功能吧:

1. auto 变量

   有点像脚本语言的变量的定义,但是注意是在编译器阶段,由编译器来决定它到底是什么类型。

2. foreach

    有了BOOST_FOREACH,可以让c++也可以像java和c#,python那样方便的迭代容器的元素

3. 智能指针 smart_ptr, shared_ptr

    比STL的

4. 更加方便的thread类

   之前想让线程执行类的成员函数,必须先定义一个static的成员函数作为线程的入口函数,并且把this传进去,然后通过this指针调用类的成员函数。使用boost的thread就可以直接  调用类的成员函数了。

   使用boost::thread使程序的可移植性更加的容易。以前如果用写可移植性的线程代码,需要使用宏来判断平台,然后使用posix或者windows的线程,用boost::thread 就不需要考虑这些问题了。并且线程的同步也变得更加简单了。

5. 和python交互更加的方便

   boost::python

6. program option的分析更加的方便

 

7. 无锁队列的实现( lock free queue )

 

8.  正则表达式的支持

 

9. 更加方便的时间计算的库 date_time 和 timer

 

10. 图像处理库 Gil

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *