Kon*_*lph 8 c++ macos locale xlocale
以下代码在Linux上运行正常但在OS X 10.7上引发异常:
#include <iostream>
#include <locale>
#include <stdexcept>
int main() try {
std::locale::global(std::locale(""));
std::cout << "Using locale: " << std::locale().name() << "\n";
}
catch (std::runtime_error const& e) {
std::cout << e.what() << "\n";
return 1;
}
Run Code Online (Sandbox Code Playgroud)
OS X上的输出是:
locale::facet::_S_create_c_locale名称无效
但是,标准明确地说明了这一点
该组有效的字符串参数值的是
"C",""和任何实现定义的值.
所以无论什么原因导致上述行为都违反了标准.
使用的编译器是clang ++ 3.1(tags/Apple/clang-318.0.58); 我也尝试过通过Homebrew安装的GCC 4.7,结果相同.
其他人可以验证这个问题吗?是什么导致的?我做错了吗?这是OS X中的错误吗?
(也许这与另一个xlocale问题有关,但错误实际上是完全不同的.)
我认为您没有使用 xlocale。我相信您的问题出在 libstdc++ 上,它使用 OS X 上不支持的不同语言环境支持库,正如问题 EitanT 链接到的那样。
如果你切换到 libc++ 你的程序就可以工作。
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |