std::wstring to_wstring(双值); [复制]

Posted

技术标签:

【中文标题】std::wstring to_wstring(双值); [复制]【英文标题】:std::wstring to_wstring( double value ); [duplicate] 【发布时间】:2013-01-27 01:06:07 【问题描述】:

可能重复:std::to_string - more than instance of overloaded function matches the argument list

#include <string>

int main()

    double randDouble = 1245.432;
    std::wstring stringDouble = std::to_wstring(randDouble);

当我在 Visual Studio 2010 中编译时出现此错误

错误 1 ​​错误 C2668: 'std::to_wstring' : 对重载的模糊调用 功能6

1> 错误 C2668: 'std::to_string' : 对重载函数的模糊调用

1> d:\program files (x86)\microsoft visual studio 10.0\vc\include\string(688): 可能是 'std::string std::to_string(long double)'

1> d:\program files (x86)\microsoft visual studio 10.0\vc\include\string(680): 或 'std::string std::to_string(_ULonglong)'

1> d:\程序文件 (x86)\microsoft visual studio 10.0\vc\include\string(672):或 'std::string std::to_string(_Longlong)'

有人可以向我解释一下为什么编译器会感到困惑以及我做错了什么吗?

【问题讨论】:

它是否列出了模棱两可的重载? @Pubby 用它说的编辑了 查看***.com/questions/10664699的答案 【参考方案1】:

这是 Visual C++ 2010 中的一个错误。它已在 Visual C++ 2012 中修复。

【讨论】:

哦... 为了详细说明这一点,特定的错误是,他们的标准库只提供了long longunsigned long longlong double 重载。因此,为了规避它,您必须将参数转换为同类中最大的类型(在您的情况下为 long double)。

以上是关于std::wstring to_wstring(双值); [复制]的主要内容,如果未能解决你的问题,请参考以下文章

重新分配 CComBSTR,内存泄漏?

ustring - std::string/std::wstring 的就地替换?

将 std::wstring 转换为 WCHAR*

宽字符std::wstring的长度和大小问题?sizeof(std::wstring)是固定的32,说明std::wstring是一个普通的C++类,而且和Delphi不一样,没有负方向,因为那个需

如何初始化和打印 std::wstring?

将 std::string 转换为 std::wstring 时,C++17 codecvt 抛出“错误转换”