summaryrefslogtreecommitdiff
path: root/boost/archive/detail/utf8_codecvt_facet.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/archive/detail/utf8_codecvt_facet.hpp')
-rw-r--r--boost/archive/detail/utf8_codecvt_facet.hpp15
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