李sir_Blog

博客园 首页 联系 订阅 管理

2011年9月7日

摘要: bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函数,函数指针,函数对象和成员函数,之后bind接受最多9个参数,参数的数量必须与f的参数数量相等 _1,_2这些一直可以到9,是占位符,必须在绑定表达式中提供函数要求的所有参数,无论是真实参数还是占位符均可以。占位符不可以超过函数参数数量。 绑定普通函数: C++代码 #include<boost/bind.hpp> #include<iostream> usingname 阅读全文
posted @ 2011-09-07 14:32 李sir 阅读(9542) 评论(2) 推荐(1)

摘要: 以boost::function和boost:bind取代虚函数boost::function和boost::bind已经纳入了std::tr1,这或许是C++0x最值得期待的功能,它将彻底改变C++库的设计方式,以及应用程序的编写方式。Scott Meyers的Effective C++ 3rd ed.第35条款提到了以boost::function和boost:bind取代虚函数的做法,这里谈谈我自己使用的感受。基本用途boost::function就像C#里的delegate,可以指向任何函数,包括成员函数。当用bind把某个成员函数绑到某个对象上时,我们得到了一个closure(闭包) 阅读全文
posted @ 2011-09-07 13:25 李sir 阅读(1091) 评论(1) 推荐(0)