2016-05-10 12 views
0

で宣言されていなかった)(私はcygwinの中に(バージョン4.8.1)++グラムを使用して、次のコードをコンパイルしようとしています、そして関数STODを使用することはできませんようです:グラム++「STOD」がこの範囲

//test.cpp 
#include<iostream> 
#include<vector> 
#include<string> 
using namespace std; 

int main(){ 
    string a="1.23"; 
    cout<<stod(a); 
    return 0; 
} 

私はこのeroorを得続ける:

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

@ 101010 '-std = C++ 0x'と' -std = C++ 11'はまったく同じことをします。 – hvd

+0

@hvd申し訳ありませんが、それを知らなかった。 – 101010

+0

これは良い質問です。私はあなたのコードをlinux(ubuntu 16.04とg ++ 5.03)に正確にコピーしました。 –

答えて

2

これは、Coliru(http://coliru.stacked-crooked.com/a/8a68ad0ca64c1bff)のGCC 4.8と私のマシンのClangでも動作します。何らかの形でCygwinシステムがこの機能をサポートしていない可能性があります。私はあなたの代わりに良い古いstrtod()を単に使用して回避することをお勧めします。とにかくフードの下でstod()が使用するのはおそらくそうです。