有没有std :: to_u16string或std :: to_u32string?

NoS*_*tAl 0 c++ tostring c++11

我很高兴标准库能够获得一个to_string功能,但现在我处于WTF模式.首先,为什么不是这个模板,其次如果它不是返回值的模板那么为什么在世界上他们没有to_u16string()to_u32string()功能.

我知道有提升词法演员,但我很想知道是否有一种标准的方法来获得我想要的东西而无需手动编写这些功能?

编辑:使事情更糟糕的提升1.46也不喜欢u16string :(

boost::lexical_cast<u16string>(22.44);
Run Code Online (Sandbox Code Playgroud)

在抛出'boost :: exception_detail :: clone_impl的实例后终止调用

'what():错误的词法转换:源类型值无法解释为目标

Ker*_* SB 5

在崩溃之前放松并深呼吸.

这一切都很有道理.to_stringto_wstring使用sprintf/ wsprintf.语言中没有任何东西跨越不可知的窄/宽编码和UTF编码之间的桥梁,因此根本不存在用于生成 UTF编码的字符串的标准库工具.新的UTF工具允许您存储 UTF编码的字符串并在它们之间进行转码,但是如果没有额外的库,则无法将特定于系统的编码编码为UTF编码.

那些"20行代码"看起来像你提出的那样?请包含浮点数.

(这是我关于这个主题的标准问题链接:#1,#2,#3)

  • 阅读我的链接帖子.宽字符串与Unicode无关.他们根本就没有.再说一遍,如果你认为你可以做到,请做,并发布!(我承认整数应该很容易.) (2认同)