boost的mutex,condition_variable非常好用。但是在Linux上,boost实际上做的是对pthread_mutex_t 和pthread_cond_t的一系列的封装。因此通过对原生态的POSIX 的mutex,cond的生成者,消费者的实现,我们可以再次体会boost带给....
分类:
其他好文 时间:
2015-05-06 14:41:17
阅读次数:
273
1:简单了解boost定时器#include "stdafx.h"#include #include #include #include using namespace boost::asio;using namespace boost;int exit1 = 1;void printing(int...
分类:
编程语言 时间:
2015-05-05 16:07:49
阅读次数:
1087
??
Boost库的function是一组函数对象包装类的模板,实现了一个泛型的回调机制。Boost库的function与函数指针相比,优点在于它允许用户在目标的实现上拥有更大的弹性,即目标既可以是普通函数(自由函数),也可以是函数对象和类成员函数,而且可以给函数添加状态。
使用Boost库的function,可以很好地与现有的代码融合在一起。另外,function还可以与Boost库的bin...
分类:
其他好文 时间:
2015-05-05 12:39:15
阅读次数:
116
??
bind是一组用于函数绑定的模板。在对某个函数进行绑定时,可以指定部分参数或全部参数,也可以不指定任何参数,还可以调整各个参数间的顺序。对于未指定的参数,可以使用占位符_1、_2、_3来表示。-1表示绑定后的函数的第1个参数,_2表示绑定后的函数的第2个参数,其他依次类推。
bind可以绑定到普通函数、函数对象、类的成员函数和类的成员变量。下面分别进行介绍。
1、普通函...
分类:
编程语言 时间:
2015-05-05 12:37:53
阅读次数:
211
??
在C++引入Boost库的lambda之前,许多编程语言,比如Lisp、Python和C#中就已经有了lambda。Boost库创建lambda的最初动机,是为了解决使用标准库时存在大量小的函数对象的定义的问题。而实际上,我们完全可以在需要使用这些函数对象的时候进行声明和定义,即就地进行。lambda库通过创建一个匿名的lambda表达式来代替实名的函数对象,大大简化了标准库的语法。
下...
分类:
其他好文 时间:
2015-05-05 12:37:25
阅读次数:
163
??
Boost库的bind是对STL的bind1st和bind2nd的进一步泛化,那么我们不免要问,bind相对于bind1st和bind2nd,都有哪些优点呢?下面通过一个具体的例子来说明这个问题。
假如有一个整数的容器vector,现在想找出容器中不大于10的元素的个数,那么我们可以有多种方式来实现:
1. 自由函数方式
BOOL LessEqualToTen(int nTem...
分类:
其他好文 时间:
2015-05-05 12:36:54
阅读次数:
129
??
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以...
分类:
编程语言 时间:
2015-05-05 12:35:00
阅读次数:
179
??
C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下:
[函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体}
可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返...
分类:
编程语言 时间:
2015-05-05 12:34:39
阅读次数:
220
0.通用规则boost自带一套编译工具bjam,bjam本身是跨平台的,并且也要自行编译出来。在boost目录下有bootstrap.sh和bootstrap.bat两个脚本分别用来编译*nix和windows下的bjam。bootstrap脚本可以传入参数,以在编译bjam过程中生成特定的编译boost的配置。编译bjam过程中生成的project-config.jam就是默认的配置,但还可以在运...
分类:
其他好文 时间:
2015-05-02 15:12:17
阅读次数:
232
Boost库是一个可移植、提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个。 Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。 Boost因为其对跨平台的强调,对标准C++的强调....
分类:
其他好文 时间:
2015-04-30 10:19:58
阅读次数:
167