簡體   English   中英

boost :: locale :: to_lower拋出bad_cast異常

[英]boost::locale::to_lower throw bad_cast exception

在Win 7 64位和VS2010上提升1.54 x64。 編譯為“Release x64”並運行以下代碼:

#include <boost/locale/conversion.hpp>
std::wstring y = L"NoNseNSE";
std::wstring w = boost::locale::to_lower(y);

拋出std::bad_cast異常。 添加后沒有任何變化(如其他地方所示):

std::locale mylocale("");
std::locale::global(mylocale);

或者將to_lower(y)更改為: to_lower(y, mylocale)或使用std::string而不是std::wstring或在環境中設置LANG。

目標是轉換為小寫意大利語UTF-8字。 我沒有找到這樣的問題,所以我認為這是我的機器特定問題或升級庫問題。 順便說一下,我從sourceforge下載了預編譯的boost庫(boost_1_54_0-msvc-10.0-64.exe)。 任何的想法? 謝謝! 馬里奧

當您的語言環境傳遞給boost::locale::to_lower (默認為std::locale() ,即全局語言環境的副本)沒有安裝boost::locale::converter facet時,拋出此異常。 有關相關文檔,請參閱此處。

使用boost::locale::generator來創建語言環境。 (另請參閱文檔鏈接的示例,例如文檔。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM