diff options
Diffstat (limited to 'boost/archive/detail/utf8_codecvt_facet.hpp')
-rw-r--r-- | boost/archive/detail/utf8_codecvt_facet.hpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/boost/archive/detail/utf8_codecvt_facet.hpp b/boost/archive/detail/utf8_codecvt_facet.hpp index dfbec6bdfd..a40104abea 100644 --- a/boost/archive/detail/utf8_codecvt_facet.hpp +++ b/boost/archive/detail/utf8_codecvt_facet.hpp @@ -9,11 +9,14 @@ #include <boost/config.hpp> -// std::codecvt_utf8 doesn't seem to work for msvc -// versions prior to MSVC 14.0 +#ifdef BOOST_NO_STD_WSTREAMBUF +#error "wide char i/o not supported on this platform" +#endif -#if defined(_MSC_VER) && _MSC_VER < 1900 \ -|| defined( BOOST_NO_CXX11_HDR_CODECVT ) +// std::codecvt_utf8 doesn't seem to work for any versions of msvc + +#if defined(_MSC_VER) || defined(BOOST_NO_CXX11_HDR_CODECVT) + // use boost's utf8 codecvt facet #include <boost/archive/detail/decl.hpp> #define BOOST_UTF8_BEGIN_NAMESPACE \ namespace boost { namespace archive { namespace detail { @@ -26,9 +29,11 @@ #undef BOOST_UTF8_DECL #undef BOOST_UTF8_BEGIN_NAMESPACE #else + // use the standard vendor supplied facet #include <codecvt> namespace boost { namespace archive { namespace detail { typedef std::codecvt_utf8<wchar_t> utf8_codecvt_facet; } } } -#endif // BOOST_NO_CXX11_HDR_CODECVT +#endif + #endif // BOOST_ARCHIVE_DETAIL_UTF8_CODECVT_FACET_HPP |