
on Fri May 04 2007, "Daniel Walker" <daniel.j.walker-AT-gmail.com> wrote:
On 4/27/07, Daniel Walker <daniel.j.walker@gmail.com> wrote:
On 4/27/07, Peter Dimov <pdimov@mmltd.net> wrote:
Daniel Walker wrote:
I'm not at all sure that breaking the code of all boost::bind users who happen to use precompiled headers with Borland and g++ is acceptable.
I agree that breaking code should be avoided if at all possible. And good news! I just ran the test suite with g++ 4.1 using precompiled bind.hpp and mem_fn.hpp and everything passed with object placeholders. What version of g++ had broken PCH and needed the inline placeholders?
I don't remember. We should conservatively assume that 4.0 and below need the workaround. I don't object to us switching to "real" placeholders for 4.1 and later based on your report.
Great! I'll send another patch that will leave borland and g++ <= 4.0 as they were.
I've attached a patch that leaves borland and g++ <= 4.0 as they were. I also changed my little addition to the documentation to reflect this. And one more thing, I couldn't find a macro analogous to BOOST_MSVC for gcc's version number that I could use with BOOST_WORKAROUND. I added one (BOOST_GCC) in boost/config/compilers/gcc.hpp that does the same things as MPL's gcc config file. Let me know if there's some other way this should have been done.
Posting it to the SF patch tracker is always a good move. :) -- Dave Abrahams Boost Consulting http://www.boost-consulting.com Don't Miss BoostCon 2007! ==> http://www.boostcon.com