
The following code generates a compile error with VC8+SP1: ************************************************************************** #include <boost/lambda/lambda.hpp> #if 1 // compiles when set to 0 # include <boost/utility/result_of.hpp> # include <boost/range/functions.hpp> #else # include <boost/range/functions.hpp> # include <boost/utility/result_of.hpp> #endif #include <boost/function.hpp> #include <boost/type_traits/is_same.hpp> typedef boost::function< int ( void ) > FuncType; BOOST_STATIC_ASSERT( ( boost::is_same< boost::result_of< FuncType ()
::type, int >::value ) );
This compiles with intel C++ 9.1. Change the inclusion order of result_of and functions.hpp and it compiles with VC8 too. Looks like a bug in VC8. Does anybody know any workaround for this besides enforcing the header order? Regards, Sean