Здравствуйте!
OS - Linux debian 2.6.32-5-amd64
boost - boost_1_50_0_betaПример взят отсюда:
http://www.boost.org/doc/libs/1_49_0/libs/locale/doc/html/bo...the line:
boundary::ssegment_index index(boundary::word,text.begin(),text.end());
throw exception std::bad_castBuilding boost locale described here:
http://www.boost.org/doc/libs/1_50_0/libs/locale/doc/html/in...
Там написано:
ICU library 3.6 or above is strongly recommendedЗатем я установил icu4c-49_1_2
И пытаюсь собрать boost library:./b2
Building the Boost C++ Libraries.
Performing configuration checks- iconv (libc) : yes
- icu : no
- icu (lib64) : noКак же мне добавить icu support to boost library?
Вобщем, проблема не в этом, т.к. я пересобрал буст с поддержкой icu, но это не решило проблему.
boost::locale::generator gen;
std::string text="To be or not to be, that is the question."
// Create mapping of text for token iterator using global locale.
ssegment_index map(word,text.begin(),text.end(),gen("en_US.UTF-8"));
последняя строка бросает исключение, т.к., по всей видимости, gen("en_US.UTF-8") возвращает пустой объект.
Странно, но я пробовал запустить это на машинах:Darwin mac-os 10.4.0 Darwin Kernel Version 10.4.0 (gcc version 4.2.1)
Linux fedora 2.6.34.9-69.fc13.x86_64 (gcc version 4.8.0 )
Linux fedora 2.6.34.7-66.fc13.x86_64 (gcc version 4.4.5)
Linux debian 2.6.32-5-amd64 (gcc version 4.7.0)Везде boost_1_50_0_beta1