我试图在cygwin中使用g ++(版本4.8.1)编译以下代码,似乎它不能使用函数stod():
//test.cpp
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
string a="1.23";
cout<<stod(a);
return 0;
}
我不断得到这种情绪:
test.cpp:9:14: error: 'stod' was not declared in this scope
cout<<stod(a);
我读了另一个有同样问题的线程。在那里,人们建议使用c ++ 11来解决它。所以我尝试了以下两个命令来编译它,但仍然遇到了同样的错误:
g++ -std=c++0x test.cpp -o test
g++ -std=c++11 test.cpp -o test
有没有人知道这个问题的解决方案?
我怎么知道启用了c ++ 11?我是否需要修改我的代码才能使用它?
非常感谢!
答案 0 :(得分:2)
它适用于Coliru(http://coliru.stacked-crooked.com/a/8a68ad0ca64c1bff)的GCC 4.8以及我机器上的Clang。可能是你的Cygwin系统不支持这个功能。我建议您通过简单地使用好的旧strtod()
来解决它。这可能是stod()
在引擎盖下使用的内容。