/* CC -I ~/boost_1_40_0 -o testLocaleBoost testLocaleBoost.cpp && \ ./testLocaleBoost && echo ===== && LC_CTYPE=de ./testLocaleBoost */ #include #include #include #include #include int main() { const std::string l_strInput("abÄÖÜßäöüAB"); std::vector l_vecStrLocale; l_vecStrLocale.push_back("C"); l_vecStrLocale.push_back("de"); l_vecStrLocale.push_back("something"); l_vecStrLocale.push_back(""); for(std::vector::iterator l_iterStrLocale = l_vecStrLocale.begin(); l_iterStrLocale != l_vecStrLocale.end(); ++l_iterStrLocale) { const char* const l_szLocale = ::setlocale(LC_CTYPE, l_iterStrLocale->c_str()); std::string l_strOutput = l_strInput; boost::to_upper(l_strOutput); std::cout << l_strInput << " -> " << l_strOutput << "\tlocale is " << (l_szLocale ? l_szLocale : "UNDEF") << " (set to " << *l_iterStrLocale << ").\n"; } }