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

时间:2011-12-01 12:58:07

标签: c++ c++11 tostring

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

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

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

boost::lexical_cast<u16string>(22.44);
  

在抛出一个实例后终止调用   “增强:: exception_detail :: clone_impl

     
    

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

  

1 个答案:

答案 0 :(得分:5)

在崩溃前放松并深吸一口气。

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

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

(以下是关于此主题的标准问题链接:#1#2#3