
"Pavel Vozenilek" <pavel_vozenilek@hotmail.com> writes:
So if I have intel6, BOOST_NO_INTRINSIC_WCHAR_T is now set. Then config/compiler/intel.hpp goes on to say:
#if defined(BOOST_NO_INTRINSIC_WCHAR_T) #include <cwchar> template< typename T > struct assert_no_intrinsic_wchar_t; template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; }; // if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T: typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_; #else ... #endif
Seems it should be
#if !(defined BOOST_NO_INTRINSIC_WCHAR_T) ...
No, clearly not. The code above checks that wchar_t == unsigned short, and causes an error otherwise. That corresponds to not having an intrinsic wchar_t. Anyway, if you changed the condition and the assertion fired in the other branch of the #if, we'd have the same problem.
The checking code is new (not shipped in 1.31.0).
I know that, and I don't mean to sound harsh, but really that's no excuse. Before stuff like this is checked in, it needs to be tested, since it affects all boost developers using that compiler. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com