我有:

Windows 7/32位上的-cygwin 1.7.25

-g ++-版本-> g ++(GCC)4.8.2

-libstdc ++。a-> gcc-g ++-4.8.2-1

尝试制作C ++
你好,世界:

#include <string>

int main()
{
   std::string s = "123";
   int i = std::stoi(s);
}


编译给出:

$ g++ -std=c++11 main.cpp
main.cpp: In function ‘int main()’:
main.cpp:6:10: error: ‘stoi’ is not a member of ‘std’
  int i = std::stoi(s);


我搜索了几个小时,但仍然找不到解决方案。这是什么问题?

最佳答案

那是一个错误,可能是一些库代码未完全移植到cygwin(这是cplusplus11功能)-毕竟必须更改某些内容。确保报告它。

解决方案当然很容易:#include <cstdlib> strtol(s.c_str(),0,10);

www.cplusplus.com/.../strtol

还提到了类似的mingw错误here

std::stoi doesn't exist in g++ 4.6.1 on MinGW

10-07 20:20