C ++ 0x中没有Unicode流?为什么?
|
今天,我发现C ++标准委员会已经在第二版中取消了C ++ 0x中的Unicode流支持。有关更多信息,请参见此问题。
根据此文件:
放弃这两种新类型的流专业化的理由是非字符类型的流没有吸引广泛的使用,因此尚不清楚是否确实需要将这种非常复杂的机器的专业化数量加倍。
从对Stroustrup的采访中:
显然,我们应该在标准库中具有Unicode流和其他更多扩展的Unicode支持。该委员会知道,但是没有任何人有技能和时间来完成这项工作,因此,不幸的是,这是您必须寻求“第三方”支持的众多领域之一。
我不是Unicode方面的专家,我想知道为什么实现Unicode流如此困难?有什么问题吗?
没有找到相关结果
已邀请:
2 个回复
缝皋
断跑胺弄萎
和
,这是Unicode文件I / O所需的全部。
正确地刻在
上,应该很好用……假设您有兼容的库。但是,实际上,GCC和MSVC已经提供了UTF-8,我希望每个严肃的C ++平台都能使
和
之间保持平价。 可能会有混淆,因为N3242§22.5/ 5说 —多字节序列只能写为二进制文件。尝试写入文本文件 产生不确定的行为。 这是因为文本模式I / O会转换行尾,因此,作为16位UTF-16字的一半的6字节可能会转换为7字节,从而破坏了流。这与支持不佳无关……只要确保以二进制模式打开文件,就必须使用提供这种功能的任何库。