Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2004-05-16 14:05:53


"Pavel Vozenilek" <pavel_vozenilek_at_[hidden]> 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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk