
Jonathan Wakely writes:
In boost/mpl/if.hpp the BOOST_MPL_AUX_AGLORITHM_NAMESPACE_BEGIN macro is inside a test for BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION, but the corresponding BOOST_MPL_AUX_AGLORITHM_NAMESPACE_END is after the #endif that matches the test. This doesn't cause an error, since those macros only expand to anything meaningful for GCC3, which enters the first branch of the #if, so the begin/end macros are balanced - but it ain't right.
Bug was found due to an error with missing #endif, which made GCC3 take a different path through that file and error.
Note also those macros are spelled "AGLORITHM" not ALGORITHM.
Untested patch attached.
Jonathan, Thanks for this one as well! I'll make sure it's fixed in the new MPL sources. -- Aleksey Gurtovoy MetaCommunications Engineering