直接代码: 代码段1: #include <iostream> #include <string> #include <boost/bind/bind.hpp> class some_class { public: typedef void result_type; void print_string(const std::string& s) const { std::cout << s << '\n'; } }; void print…
代码段1: #include <boost/function.hpp> #include <iostream> float mul_ints(int x, int y) { return ((float)x) * y; } struct int_div { float operator()(int x, int y) const { return ((float)x)/y; }; }; int main() { boost::function<float (int x, in…
第一部分源码为基础实践: /*Beyond the C++ Standard Library ( An Introduction to Boost )[CN].chm*/ /*bind的用法*/ #include <iostream> #include <algorithm> #include <functional> #include <vector> #include <boost/bind/bind.hpp> #include <bo…
转自:http://blog.csdn.net/Solstice/archive/2008/10/13/3066268.aspx 这是一篇比较情绪化的blog,中心思想是“继承就像一条贼船,上去就下不来了”,而借助boost::function和boost::bind,大多数情况下,你都不用上贼船. boost::function和boost::bind已经纳入了std::tr1,这或许是C++0x最值得期待的功能,它将彻底改变C++库的设计方式,以及应用程序的编写方式. Scott Meyer…
以boost::function和boost:bind取代虚函数 这是一篇比较情绪化的blog,中心思想是"继承就像一条贼船,上去就下不来了",而借助boost::function和boost::bind,大多数情况下,你都不用上贼船. boost::function和boost::bind已经纳入了std::tr1,这或许是C++0x最值得期待的功能,它将彻底改变C++库的设计方式,以及应用程序的编写方式. Scott Meyers的Effective C++ 3rd ed.第35条…
#include <boost/bind.hpp> #include <boost/shared_ptr.hpp> #include <iostream> using namespace std; void dprint(int x,int y) { cout << x << " " <<y <<endl; } class Bind_test { public: void setData(int x,i…
这是一篇介绍bind和function用法的文章,起因是近来读陈硕的文章,提到用bind和function替代继承,于是就熟悉了下bind和function的用法,都是一些网上都有的知识,记录一下,期冀对他人也有用处. 注:本文暂时不探索bind和function的实现和开销. 1. bind 是什么 boost::bind 是std::bindlist 和 std::bind2nd的结合体.它提供一个任意的函数对象(仿函数).函数.函数指针.成员函数指针. 它可以绑定任意的参数.bind 没有…
Boost.Bind为函数和函数对象,值语义和指针提供语义了一致的语法.我们首先通过一些简单的例子来看看它的基本用法,之后我们会延伸到嵌套绑定以实现功能组合.理解bind用法的一个关键是理解占位符(placeholder)的概念.占位符表示该参数将在函数对象里面提供.Boost.Bind提供多达9个这样的参数--_1, _2, _3, _4, _5,_6,_7,_8, _9.你可以在想要加入参数的地方使用它们.在第一个示例程序中,我们定义一个函数"nine_arguments",之后用…
前言 最近任务多.工期紧,没有时间更新博客,就水一期吧.虽然是水,也不能太失水准,刚好最近工作中遇到一个 boost::bind 的问题,花费了半天时间来定位解决,就说说它吧. 问题背景 项目中使用了 boost 的 ios_service,任务都是 post 到对应线程去执行,这样可以避免复杂的多线程同步问题,有点类似早年间 COM 的单线程套间模型.不过这就需要将接口通过 bind 封装为函数对象传递给 ios_service,之前的代码都工作正常,但我新增了一个接口后,却怎么也编译不过,报…
bind - boost 头文件: boost/bind.hpp bind 是一组重载的函数模板.用来向一个函数(或函数对象)绑定某些参数. bind的返回值是一个函数对象. 它的源文件太长了. 看不下去. 这里只记下它的用法: 9.1 对于普通函数 假如有函数 fun() 如下:  void fun(int x, int y) {  cout << x << ", " << y << endl; }现在我们看看怎么用bind 向其绑定参…