boost::locale::to_lower抛出bad_cast异常
boost::locale::to_lower throw bad_cast exception
Boost 1.54 x64 on Win 7 64 bits和VS2010。编译为"发布 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_1_54_0-msvc-10.0-64.exe)。知道吗?谢谢!马里奥
当您的区域
设置传递给boost::locale::to_lower
(默认情况下std::locale()
,即全局区域设置的副本)未安装boost::locale::converter
方面时,将引发此异常。有关相关文档,请参阅此处。
请改用boost::locale::generator
创建区域设置。(另请参阅文档链接到的示例,例如本示例。
相关文章:
- 如何理解C++标准N3337中的expr.const.cast子句8
- C++Cast运算符过载
- 使用来自 Excel VBA 的 C++ dll 时"Bad DLL calling convention" - 如何解决?
- 错误:"cast"未命名类型void setCastDescription(std::string
- 通过使用 const-cast 的非常量引用来延长临时的寿命
- "(void) cast"与功能有什么区别 "__attributes__"来沉默未使用的参数警告?
- C++17 编解码器在将标准::字符串转换为标准::字符串时抛出"bad conversion"
- 对于代理容器上的迭代器来说,"least bad implementation"可能是什么?
- 获取错误:在抛出"std::bad::alloc"的实例后终止调用 what(): std::bad_alloc
- C++:"Expected '(' for function-style cast or type construction"错误
- 为什么选择 g++ 给予者:"error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]"
- 为什么 GetSystemMetrics (SM_CXVIRTUALSCREEN) 返回'bad'值?
- Gtk+ g_signal_connect() 和 C++ lambda 会导致"invalid cast"错误
- Shared_ptr cast vs static_cast speed
- 将 lambda 传递给 STL 集时出错"bad function call"
- 新的 C++14 位分隔符处"Bad Character" Eclipse Oxygen 错误
- 使用 #define 被认为是"bad practice"吗?
- "400 Bad request"使用 OpenSSL BIO 进行请求时
- 在 iOS 上使用 Aruco 构建 OpenCV 时"Functional-style cast from id to double is not allowed"
- 禁用"bad function cast"警告