
With the files newly unpacked from boost_1_31_0.zip, using MS VS .NET 2003 (aka 7.1), the following two-line source file: #include <boost/bind.hpp> #include <boost/python.hpp> compiled with the following command line: cl /c /I "c:/Dev/boost_1_31_0" /I "$PYTHONDIR/include" /EHsc test.cpp produces these errors: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 Copyright (C) Microsoft Corporation 1984-2002. All rights reserved. test.cpp c:/Dev\boost_1_31_0\boost\mpl\less.hpp(39) : error C2760: syntax error : expected ',' not ';' c:/Dev\boost_1_31_0\boost\mpl\less.hpp(51) : see reference to class template instantiation 'boost::mpl::less<T1,T2>' being compiled c:/Dev\boost_1_31_0\boost\mpl\less.hpp(39) : error C2144: syntax error : 'const bool' should be preceded by '}' c:/Dev\boost_1_31_0\boost\mpl\less.hpp(39) : error C2062: type 'const bool' unexpected c:/Dev\boost_1_31_0\boost\mpl\less.hpp(39) : error C2238: unexpected token(s) preceding ';' c:/Dev\boost_1_31_0\boost\mpl\less.hpp(42) : error C2065: 'value' : undeclared identifier Reversing the order of 'bind.hpp' and 'python.hpp' results in a clean compile. I'm trying to upgrade from Boost 1.30.2 to 1.31.0 today, but this bug is turning into quite a problem because of deep nesting of our own #include files. It hasn't yet become a show-stopper; but it's certainly taking me a great deal of effort to try to propagate every #include <boost/python*> -- and every file that includes it! - higher in its includer's #include list than any #include <boost/bind.hpp>. Please tell me there's a better way.