
On Sun, May 24, 2015 at 6:21 PM, Edward Diener <eldiener@tropicsoft.com> wrote:
I realize that changing boost::bind so by default that placeholders of the form _n needing some sort of namespace in front of it will break plenty of code, so I am not suggesting doing that. What I would like to suggest is a Boost.bind macro, which when used before including <boost/bind>, would put the boost::bind placeholders of the form _n in a boost::placeholders namespace.
I propose creating <boost/bind/bind.hpp>. Including it should result in the placeholders being in boost::placeholders namespace. <boost/bind.hpp> would now do nothing more than just include <boost/bind/bind.hpp> and bring all the placeholders into the global namespace. ... e.g. Contents of <boost/bind.hpp> #ifndef BOOST_BIND_HPP #define BOOST_BIND_HPP #include <boost/bind/bind.hpp> using boost::placeholders::_1; using boost::placeholders::_2; using boost::placeholders::_3; #endif ... Documentation can be updated to remove all mention of <boost/bind.hpp> in favor of <boost/bind/bind.hpp> and now state that placeholders are within boost::placeholders. (Existing code that includes <boost/bind.hpp> would not be affected). Glen