Boost logo

Boost :

Subject: Re: [boost] [serialization] [libstdc++] [detail] utf8_codecvt_facet fixes broke serialization test_array_xml_warchive
From: Robert Ramey (ramey_at_[hidden])
Date: 2014-09-05 16:02:59

Beman Dawes wrote
> On Thu, Sep 4, 2014 at 11:59 AM, Robert Ramey <

> ramey@

> > wrote:
> Does any Boost library other than serialization try to switch between
> boost:: and std:: versions?

I'm just trying to make sure that the serialization library works on both
C++O3 and C++11 systems.

Support for utf8_codecvt is different for the libraries which come withe
systems. On many platforms, C++11 includes std support for utf8_codecvt and
that's what I use if it exists. While C++03 libraries don't come with such
support. And those that did had inconsistent interfaces. I made changes
which use config to select the std version if the library supports it and
the boost version otherwise. That was the only way I saw to avoid
invalidating all existing files created with the serialization library.

>> A better solution might be a new library for codecvt facets.
>> There
>> is a rich opportunity here.
> Why? Microsoft, for example, ships codecvt facets for 79 character sets,
> including the difficult Asian character sets. Why should boost try to
> duplicate the work that vendors have already done, particularly when
> Unicode become predominate.?

the codecvt interface is quite general purpose and could be used for a lot
of other things like translating binary data into base64. This could be
used to decouple things like base64 from the user program and just make it a
component of the stream buffer. Also there's the possibility of making a
codecvt composer such that other codecvt types could be piped together.
Basically, it would be a kit including a set of stream transformation
primitives which could be arbitrarily composed to generate a more complex
stream. FWIW that's what I had in mind.

RObert Ramey

View this message in context:
Sent from the Boost - Dev mailing list archive at

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