ページ 11

autoによるエラー

Posted: 2011年12月18日(日) 10:21
by Cr
autoを試験的に使うプログラムを書いてみたのですが、次のようなコンパイルエラーが起きてしまいました。
string::size_typeをautoにしてあります。
ちなみにsize_typeにした場合は問題なくコンパイルされました。
環境はMingw5.1.6のg++コンパイラです。
ファイル名はerror.cppです。

コード:

#include <iostream>
#include <string>
using namespace std;

int main(){

	string str = "abcdefgh";
	auto it = str.find('a');
	
	return 0;
	
}
エラーメッセージ

コード:

error.cpp: In function `int main()':
error.cpp:8: error: ISO C++ forbids declaration of `it' with no type
なぜこのようなエラーが表示されたのかわかる方いたら教えてください。

Re: autoによるエラー

Posted: 2011年12月18日(日) 10:43
by xxx
コンパイルオプションに-std=c++0xを追加してください

Re: autoによるエラー

Posted: 2011年12月18日(日) 12:36
by Cr

コード:

g++ -std=c++0x error.cpp
cc1plus.exe: error: unrecognized command line option "-std=c++0x"
こうなりました...
バージョン的に対応してないんですかね?
今使ってるのはMingw5.1.6のg++コンパイラなのですが...
何かお勧めのコンパイルソフトがあれば教えてくれませんか?

Re: autoによるエラー

Posted: 2011年12月18日(日) 15:55
by しひ
検索してみるとMingw5.1.6に付属しているgccはバージョンが3.4くらいのものらしいですね。
autoを使うためにはgcc4.4以上が必要ですので、新しいものを入れて下さい。
最新版は4.6だったかと思います。

Re: autoによるエラー

Posted: 2011年12月18日(日) 16:11
by Cr
やっぱりバージョンのせいだったんですね。。。
どうもありがとうございました