g ++' stod'在这方面没有申明

时间:2016-05-10 12:35:28

标签: c++ c++11 gcc

我试图在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?我是否需要修改我的代码才能使用它?

非常感谢!

1 个答案:

答案 0 :(得分:2)

它适用于Coliru(http://coliru.stacked-crooked.com/a/8a68ad0ca64c1bff)的GCC 4.8以及我机器上的Clang。可能是你的Cygwin系统不支持这个功能。我建议您通过简单地使用好的旧strtod()来解决它。这可能是stod()在引擎盖下使用的内容。