| 1 | /*
|
|---|
| 2 | CC -I ~/boost_1_40_0 -o testLocaleBoost testLocaleBoost.cpp && \
|
|---|
| 3 | ./testLocaleBoost && echo ===== && LC_CTYPE=de ./testLocaleBoost
|
|---|
| 4 | */
|
|---|
| 5 |
|
|---|
| 6 | #include <string>
|
|---|
| 7 | #include <vector>
|
|---|
| 8 | #include <iostream>
|
|---|
| 9 | #include <locale>
|
|---|
| 10 |
|
|---|
| 11 | #include <boost/algorithm/string/case_conv.hpp>
|
|---|
| 12 |
|
|---|
| 13 | int main()
|
|---|
| 14 | {
|
|---|
| 15 | const std::string l_strInput("abÄÖÜßäöüAB");
|
|---|
| 16 | std::vector<std::string> l_vecStrLocale;
|
|---|
| 17 |
|
|---|
| 18 | l_vecStrLocale.push_back("C");
|
|---|
| 19 | l_vecStrLocale.push_back("de");
|
|---|
| 20 | l_vecStrLocale.push_back("something");
|
|---|
| 21 | l_vecStrLocale.push_back("");
|
|---|
| 22 |
|
|---|
| 23 | for(std::vector<std::string>::iterator l_iterStrLocale =
|
|---|
| 24 | l_vecStrLocale.begin();
|
|---|
| 25 | l_iterStrLocale != l_vecStrLocale.end();
|
|---|
| 26 | ++l_iterStrLocale)
|
|---|
| 27 | {
|
|---|
| 28 | const char* const l_szLocale =
|
|---|
| 29 | ::setlocale(LC_CTYPE, l_iterStrLocale->c_str());
|
|---|
| 30 | std::string l_strOutput = l_strInput;
|
|---|
| 31 | boost::to_upper(l_strOutput);
|
|---|
| 32 | std::cout << l_strInput << " -> " << l_strOutput
|
|---|
| 33 | << "\tlocale is " << (l_szLocale ? l_szLocale : "UNDEF")
|
|---|
| 34 | << " (set to " << *l_iterStrLocale << ").\n";
|
|---|
| 35 | }
|
|---|
| 36 | }
|
|---|