In wchar_from_mb.hpp you have at the beginning of the file:
#ifndef BOOST_NO_CWCHAR
#include <cwchar> // mbstate_t
#endif
but you proceed in the functionality in the file as if BOOST_NO_CWCHAR can never be defined by referencing functionality in cwchar. If the functionality in wchar_from_mb.hpp can not work if BOOST_NO_CWCHAR is defined should not the serialization library adjust to this somehow, maybe by not supporting wide character archives at all in such a situation ?
I am working with the Embarcadero C++ clang-based compilers trying to integrate them into Boost libraries. Unforunately those compilers have a bug, which I have reported to Embarcadero, that large parts of the functionality of cwchar are not provided despite the compilers supporting wchar_t. So in the embarcadero.hpp for these clang-based compilers I have BOOST_NO_CWCHAR defined. But this causes a compiler error in wchar_from_mb.hpp when you try to use functionality from the cwchar header file, such as std::mbsinit on line 133.
In wchar_from_mb.hpp you have at the beginning of the file:
but you proceed in the functionality in the file as if BOOST_NO_CWCHAR can never be defined by referencing functionality in cwchar. If the functionality in wchar_from_mb.hpp can not work if BOOST_NO_CWCHAR is defined should not the serialization library adjust to this somehow, maybe by not supporting wide character archives at all in such a situation ?
I am working with the Embarcadero C++ clang-based compilers trying to integrate them into Boost libraries. Unforunately those compilers have a bug, which I have reported to Embarcadero, that large parts of the functionality of cwchar are not provided despite the compilers supporting wchar_t. So in the embarcadero.hpp for these clang-based compilers I have BOOST_NO_CWCHAR defined. But this causes a compiler error in wchar_from_mb.hpp when you try to use functionality from the cwchar header file, such as std::mbsinit on line 133.