Even if you cannot switch to C ++ 11, you should go from boost :: to TR1 functions, which was a preview for C ++ 11
Basically, what started with the boost :: function becoming part of the C ++ standard library, which is currently defined using variable templates. In a nutshell, this means that there is no longer a hard limit (but you may need to define additional placeholder variables if you need something outside of _19 )
To switch from boost :: function to std :: tr1, do the following
find all occurrences of #include <boost/function> and #include <boost/bind> and replace them with:
#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 replacement. If you have to switch to C ++ 11 later, just drop out of the "tr1" part.
source share