std::stoi 的问题,不适用于 MinGW GCC 4.7.2
Posted
技术标签:
【中文标题】std::stoi 的问题,不适用于 MinGW GCC 4.7.2【英文标题】:Problems with std::stoi, not working on MinGW GCC 4.7.2 【发布时间】:2013-04-21 14:27:18 【问题描述】:#include <iostream>
#include <string>
int main()
std::string test = "45";
int myint = stoi(test);
std::cout << myint << '\n';
我在运行 MinGW GCC 4.7.2 的计算机上尝试了此代码。它给了我这个错误:
我做错了什么,我从cppreference 得到这个。它的代码完全相同。它与here 描述的错误不同。
【问题讨论】:
同样的错误。看起来不同但情况相同。 MinGW 问题。 我有这个。我个人不得不进去手动注释掉一个 PP 条件,然后它对非 wstrings 工作正常。 @chris 你能解释一下你必须注释掉的内容吗? @orian,我强烈建议答案中的补丁。它工作得更好,而且更安全、更容易。 【参考方案1】:看来你的 MinGW 需要一个补丁:Enabling string conversion functions in MinGW
此补丁启用以下 C++11 函数和模板列表 在 std 命名空间中:
stoi, stol, stoul, 斯托尔, stof, stod, stold, to_string, to_wstring
在上面的链接中,有一个.zip
文件,下载它并
【讨论】:
人们应该注意,在 MinGW GCC 4.7 之后的版本上不能保证直接替换文件是安全的 - 使用 pastebin sn-ps,打开文件,然后评论/添加到现有文件。这样应用,这在 MinGW GCC 4.8.1 afaik 上仍然可以正常工作【参考方案2】:另一种解决方案是使用MinGW-w64,它开箱即可正常工作。这是 MinGW 的一个分支,可以生成 32 位和 64 位版本。
【讨论】:
以上是关于std::stoi 的问题,不适用于 MinGW GCC 4.7.2的主要内容,如果未能解决你的问题,请参考以下文章