________________________________ From: Robert Ramey
Independently of Boost.Nowide I would like to propose replacement of boost/detail/utf8_codecvt_facet by one thatactually takes in account proper Unicode handling.
This is a worthy undertaking. Consider putting it somewhere else other than "detail" directory/namespace. This should have been an officially supported boost component years and years ago. Also I'd like to see it look more like a boost library - tests, documentation ,etc.
First of all I can add it as header only component to Boost.Locale with its unit test as it would be a proper place - without any review process (also code is partially based on boost-locale's one) And than other libraries should replace the broken one by a new one and remove boost/detail/utf8_codevt* all together. Also if Boost.Nowide gets reviewed/accepted it can be proper place as well because nowide is "lightweight library" when boost.Locale is heavy one.
On the other hand, the standard library includes officially sanctioned <codecvt> so maybe this isn't as critical as it used to be.
I'm not really trying to make a case for anything specific here, just reacting to years and years of dealing with this festering sore.
Not every library provides this (libstdc++ isn't for example) It is also does some other stuff that does not really fit the context. Major use of utf8_codecvt facet is to "connect" narrow and wide APIs. C++11's <codecvt> is just too long for weight especially when C++03 would be with us for a loooooooong period.
Robert Ramey
Artyom Beilis