VC6のうざさ

そんなに古いコンパイラを使うな!って話ですが、使わないといけないんだから仕方がない。
なにがうざいかって、C++のくせに


for (int i = 0; i < 10; i++) {
   x++;
}
for (int i = 0; i < 10; i++) {
   x++;
} 

って書けないところ。一個だけならいいんだけど、二個書くとiが再定義されたって怒られる。こっちが怒ってやりたい。そういうわけで無理矢理下記みたいにしてコンパイル通したりしてる。


{
	for (int i = 0; i < 10; i++) {
	   x++;
	}
}
{
	for (int i = 0; i < 10; i++) {
	   x++;
	}
}

{ }で囲んでおけばローカルスコープになるのでiはローカルブロック内だけで有効になり問題ないようだ。まじめにやろうとしたら、ちゃんとiを最初に定義ししておくか、_MSC_VER < 1300とかで分岐させて書くのかもしれない。めんどくさい。

以上

2008-09-22 追記: (コメントより)
C++の古い仕様らしい。
http://www.ksky.ne.jp/~seahorse/cpp/loopvar.html

コスミー について

昔(?)はゲーム作ってました。 今もなんか作ろうとしています。
カテゴリー: 聞いて欲しい独り言 パーマリンク

VC6のうざさ への2件のフィードバック

  1. コスミー のコメント:

    VCではなくてC++の仕様だったんですね。
    情報どうもありがとう。

コメントを残す

メールアドレスが公開されることはありません。