Boost logo

Boost :

From: Kevlin Henney (kevlin_at_[hidden])
Date: 2003-03-14 12:41:54

In article <b4t01k$lbi$1_at_[hidden]>, Edward Diener
<eddielee_at_[hidden]> writes
>Kevlin Henney wrote:
>> In article <b4sp1d$i5p$1_at_[hidden]>, Edward Diener
>> <eddielee_at_[hidden]> writes
>>> I am not trying to change lexical_cast at this late date since it
>>> must get out the door with 1.30, but this goes back to a comment I
>>> made quite a while ago about the two different versions of wchar_t
>>> on VC7 and the possible need to support both in Boost. I think it
>>> was briefly discussed by others but, more or less, shelved as an
>>> important issue.
>> I think the issue is not really related to lexical_cast. lexical_cast
>> works just fine on VC7 supporting non-native wchar_t. However, to be
>> sure of more universal support using the BOOST_ config macros, any
>> compiler that does not have a native wchar_t is excluded from wide-
>> character support under the current version of lexical_cast.
>Will lexical_cast work correctly if the VC7+ end-user changes the option to
>C++ native wchar_t ? If not, you might get some complaints from end-users
>who are migrating away from the MS version of wchar_t to the C++ standard
>version on VC7+. I think others also brought up the fact that they want
>Boost to support C++ as much as possible vs. a compiler's non-standard
>version of C++. Again I realize it is probably too late to change things for
>1.30, as everyone wants to get this out without further delays, but for the
>future this issue needs to be addressed. For better or worse, there are many
>VC++ programmers out there and MS is definitely pushing VC7.1 as a Boost
>compatible implementation.

Sorry, I guess I was unclear: if native wchar_t is fully supported you
get wide-character support from lexical_cast; if it isn't you don't. In
other words, lexical_cast adapts to the subset of C++ supported by the
compiler, and is not hardwired to a lowest common denominator.

The tests I have been running with VC7 test under both native wchar_t
(10 of the 10 tests specified run) and typedef'd wchar_t (6 out of the
10 tests are run, the other 4 are excluded). As it happens, the non-
native version will also pass all 10 tests and give full lexical_cast
functionality, but by default that is not currently supported out of the


  Kevlin Henney phone: +44 117 942 2990
  mailto:kevlin_at_[hidden] mobile: +44 7801 073 508 fax: +44 870 052 2289
  Curbralan: Consultancy + Training + Development + Review

Boost list run by bdawes at, gregod at, cpdaniel at, john at