no. of arguments in boost::bind

2019-06-25 12:47发布

How many maximum arguments can we pass to boost::bind()

2条回答
Juvenile、少年°
3楼-- · 2019-06-25 13:30

Even if you can't switch to C++11, you should consider switching from boost::function to the TR1 functions, which was a preview for C++11

Basically, what started out as boost::function became part of the C++ standard library, which nowadays is defined with variadic templates. In a nutshell this means that there is no hard limit anymore (but you might need to define additional placeholder variables if you need something beyond _19 )

To switch from boost::function to std::tr1 do the following

find all occurences of #include <boost/function> and #include <boost/bind> and replace them by:

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

This should work as a drop-in replacement. If you happen to switch to C++11 later, just throw out the "tr1" part.

查看更多
登录 后发表回答