Boost logo

Boost :

From: Edward Diener (eddielee_at_[hidden])
Date: 2003-03-13 10:46:56


A very quick, but probably irrelevant, thought from someone who doesn't know
the internals of lexical_cast or of the test:

Remember that VC7 now supports two different types for wchar_t, depending on
the option used when building a module. Could this by any slight chance be
causing a problem ?

Kevlin Henney wrote:
> In article <4.3.2.7.2.20030313072035.025d4968_at_[hidden]>,
> Beman
> Dawes <bdawes_at_[hidden]> writes
>>
>>> Just to let you know that a new version is now in CVS.
>>>
>>> However, it appears to break under the regression test. I expected
>>> it to break for VC6, but it is apparently failing to compile under
>>> VC7 and
>>> Intel 7.0... which is more than a little bizarre because I have been
>>> using VC7 as the main test compiler and Terje checked it against
>>> Intel
>>> 7.0. Both compile and run cleanly.
>>
>> VC++7 is not giving trouble with any tests other than
>> lexical_cast_test. On it, the message begins:
>>
>> D:\boost\site-RC_1_30_0\boost\lexical_cast.hpp(142) : error C2065:
>> 'InputStreamable' : undeclared identifier
>
> Which of course, is not the case :-> The problem does not appear to be
> with the code.
>
>> The error messages from various date_time library fails for both
>> Intel
>> and VC++ 6.0 are similar. Here is the Intel message:
>>
>> D:\boost\site-RC_1_30_0\boost/lexical_cast.hpp(137): error: no
>> operator "<<" matches these operands operand types are:
>> std::basic_stringstream<wchar_t, std::char_traits<wchar_t>,
>> std::allocator<wchar_t>> << const std::basic_string<char,
>> std::char_traits<char>, std::allocator<char>> return stream << input;
>
> This suggests that the compiler has deduced wchar_t as being the
> appropriate type for the stream when it should be char. This relies on
> rather straightforward full template specialisation, which would seem
> odd to get wrong.
>
>> Plus Robin Hu's posting:
>>
>>> A word on the lexical_cast_test.cpp: everything will be ok if you
>>> commented all tests about std::wstring and wchar_t with
>>>
>>> #ifndef BOOST_NO_STD_WSTRING
>>> #endif
>>
>> Both seem to indicate a wstring/wchar_t problem.
>
> The problem is related to wstring and wchar_t, but is not related to
> compiler/library support for them.


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