diff -ru boost.orig/boost/libs/locale/src/encoding/codepage.cpp boost/boost/libs/locale/src/encoding/codepage.cpp --- foo/misc/boost.orig/libs/locale/src/encoding/codepage.cpp +++ foo/misc/boost/libs/locale/src/boost/locale/encoding/codepage.cpp @@ -39,6 +39,7 @@ const char* from_charset, method_type how) { +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV) hold_ptr cvt; #ifdef BOOST_LOCALE_WITH_ICONV cvt.reset(new iconv_between()); @@ -55,6 +56,7 @@ if(cvt->open(to_charset, from_charset, how)) return cvt->convert(begin, end); #endif +#endif throw invalid_charset_error(std::string(to_charset) + " or " + from_charset); } @@ -65,6 +67,7 @@ template std::basic_string convert_to(const char* begin, const char* end, const char* charset, method_type how) { +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV) hold_ptr> cvt; #ifdef BOOST_LOCALE_WITH_ICONV cvt.reset(new iconv_to_utf()); @@ -81,6 +84,7 @@ if(cvt->open(charset, how)) return cvt->convert(begin, end); #endif +#endif throw invalid_charset_error(charset); } @@ -91,6 +95,7 @@ template std::string convert_from(const CharType* begin, const CharType* end, const char* charset, method_type how) { +#if defined(BOOST_LOCALE_WITH_ICONV) || defined(BOOST_LOCALE_WITH_ICU) || defined(BOOST_LOCALE_WITH_WCONV) hold_ptr> cvt; #ifdef BOOST_LOCALE_WITH_ICONV cvt.reset(new iconv_from_utf()); @@ -107,6 +112,7 @@ if(cvt->open(charset, how)) return cvt->convert(begin, end); #endif +#endif throw invalid_charset_error(charset); }