MPL bitand.hpp and iso646.h on MSVC 2008

If I make a program like #undef BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #include <iso646.h> #include <boost/mpl/bitand.hpp> I get an error like boost/mpl/aux_/include_preprocessed.hpp(37) : fatal error C1083: Cannot open include file: 'boost/mpl/aux_/preprocessed/plain/&.hpp': No such file or directory And if I change it to #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS #include <iso646.h> #include <boost/mpl/bitand.hpp> I get 1>c:\work\boost\boost/mpl/aux_/numeric_op.hpp(86) : error C2332: 'struct' : missing tag name 1>c:\work\boost\boost/mpl/aux_/numeric_op.hpp(86) : error C3306: 'boost::mpl::<unnamed-tag>': unnamed class template is not allowed 1>c:\work\boost\boost/mpl/aux_/numeric_op.hpp(86) : error C2143: syntax error : missing ';' before '&' I think the problem is in boost/mpl/bitand.hpp, where #define AUX778076_OP_PREFIX bitand Is defined. 'bitand' is (nonconformantly) #defined to '&' in VC 2008's iso646.h, borking the definition of AUX778076_OP_PREFIX. The fix seems to be to #define AUX778076_OP_PREFIX to something else that MSVC doesn't stomp on. Thanks Erik
participants (1)
-
Nelson, Erik - 2