diff --git a/include/boost/utf8_codecvt_facet.hpp b/include/boost/utf8_codecvt_facet.hpp index e2ba43a..c567c5e 100644 --- a/include/boost/utf8_codecvt_facet.hpp +++ b/include/boost/utf8_codecvt_facet.hpp @@ -49,21 +49,18 @@ #include -#include -#if BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x551)) - #ifndef _RWSTD_NO_NAMESPACE - using std::codecvt; - using std::min; - #ifdef _RWSTD_NO_MBSTATE_T - using std::mbstate_t; - #endif - #endif -#elif defined(__COMO__) || defined(_MSC_VER) && _MSC_VER <= 1300 || defined(__BORLANDC__) - typedef ::mbstate_t mbstate_t; -#elif defined(BOOST_NO_STDC_NAMESPACE) - typedef std::mbstate_t mbstate_t; +#if defined(__COMO__) namespace std{ - using ::codecvt; + using ::mbstate_t; + } // namespace std +#elif (defined(BOOST_MSVC) && (_MSC_VER <= 1300)) + namespace std{ + using ::mbstate_t; + } // namespace std +#elif defined(BOOST_NO_STDC_NAMESPACE) + namespace std{ + using ::codecvt; + using ::mbstate_t; } // namespace std #endif @@ -71,15 +68,15 @@ #define MB_LENGTH_MAX 8 struct utf8_codecvt_facet_wchar_t : - public std::codecvt + public std::codecvt { public: explicit utf8_codecvt_facet_wchar_t(size_t no_locale_manage = 0) - : std::codecvt(no_locale_manage) + : std::codecvt(no_locale_manage) {} protected: virtual std::codecvt_base::result do_in( - mbstate_t& state, + std::mbstate_t& state, const char * from, const char * from_end, const char * & from_next, @@ -89,7 +86,7 @@ protected: ) const; virtual std::codecvt_base::result do_out( - mbstate_t & state, const wchar_t * from, + std::mbstate_t & state, const wchar_t * from, const wchar_t * from_end, const wchar_t* & from_next, char * to, char * to_end, char * & to_next ) const; @@ -118,7 +115,7 @@ protected: // UTF-8 isn't really stateful since we rewind on partial conversions virtual std::codecvt_base::result do_unshift( - mbstate_t&, + std::mbstate_t&, char * from, char * to, char * & next @@ -135,7 +132,7 @@ protected: // How many char objects can I process to get <= max_limit // wchar_t objects? virtual int do_length( - const mbstate_t &, + const std::mbstate_t &, const char * from, const char * from_end, size_t max_limit @@ -159,7 +156,7 @@ public: {} protected: virtual std::codecvt_base::result do_in( - mbstate_t & state, + std::mbstate_t & state, const char * from, const char * from_end, const char * & from_next, @@ -169,7 +166,7 @@ protected: ) const; virtual std::codecvt_base::result do_out( - mbstate_t & state, + std::mbstate_t & state, const char * from, const char * from_end, const char* & from_next, @@ -181,7 +178,7 @@ protected: // How many char objects can I process to get <= max_limit // char objects? virtual int do_length( - const mbstate_t&, + const std::mbstate_t&, const char * from, const char * from_end, size_t max_limit