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 | }
|
---|