no. of arguments in boost::bind

5.3k views Asked by At

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

2

There are 2 answers

4
KitsuneYMG On BEST ANSWER
0
Ichthyo On

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.