5

我们可以传递多少个最大参数给 boost::bind()

4

2 回答 2

11

默认为 9。

http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html#NumberOfArguments

于 2011-02-10T10:23:27.087 回答
3

即使不能切换到 C++11,也应该考虑从 boost::function 切换到 TR1 函数,这是 C++11 的预览版

基本上,最初的 boost::function 成为了 C++ 标准库的一部分,现在它是用可变参数模板定义的。简而言之,这意味着不再有硬性限制(但如果您需要超出的内容,您可能需要定义额外的占位符变量_19

要从 boost::function 切换到 std::tr1,请执行以下操作

查找所有出现的#include <boost/function>#include <boost/bind> 替换为:

 #include <tr1/functional>
 using std::tr1::function;
 using std::tr1::bind;
 using std::tr1::placeholders::_1;
 using std::tr1::placeholders::_2;
...

这应该可以作为替代品。如果你以后碰巧切换到 C++11,就扔掉“tr1”部分。

于 2013-07-03T21:29:13.280 回答