mingw 4.7.1上的stoi和std :: to_string

时间:2013-02-07 16:02:21

标签: c++ c++11 mingw std

我想将我的C ++ 11程序移植到Windows,但似乎在mingw 4.7.1中没有实现stoi和std :: to_string。我知道它已被问及有一个解决方案来编辑​​一些标题,但在我的mingw版本(4.7.1附带codelite)标题是不同的,没有我必须移动的确切行(可能是因为答案是对于mingw 4.6)。

所以我的问题是如何在mingw 4.7上获得这些功能? 是否有任何指南在4.7中的标题中有什么变化,或者它可能会包含在4.8中?

当然有boost :: lexical_cast,但我想保持我的代码不变,所以我正在寻找解决方案如何在mingw中启用这些功能。

也许有一些自定义mingw发行版支持这些功能?

1 个答案:

答案 0 :(得分:6)

Mingw使用Windows API,Windows不提供用于实现vswprintf的{​​{1}}函数的符合版本,归咎于Microsoft。

如果您使用(非常)最新版本的mingw-w64分支和未发布的4.8版本的GCC,那么它将起作用,但是你对主mingw32和GCC 4.7.1运气不好

如果您愿意修补您的实施,可以尝试http://tehsausage.com/mingw-to-string给出的解决方案,但请仔细阅读警告。

更新:

似乎只有to_string受到std::to_wstring功能损坏的影响,所以我对GCC 4.9.3(及更高版本)进行了更改,这将定义vswprintf, MinGW的std::stoistd::stod等等,只留下std::to_string未定义。

如果您想自己编辑4.7.1标题,请参阅相关补丁:

to_wstring
相关问题