eVC 4.0 で std::vector を使ったらいきなり警告 C4530 をもらった。eVCのヘルプには C4530 の説明がない。VC6.0のヘルプによれば、/GX オプションが有効でないので、例外が throw された場合、巻き戻し途中のスタックオブジェクトが delete されない、と言う意味らしい。ところが eVC 4.0 のヘルプには /GX の説明もない。 今見たらMicroprocessor Reference下のコンパイラーの説明の中にありました。検索しても見つかります。先日はみつからなかったのに。。。
グーグル先生に相談して、次の情報を見つけた。
標準 C++ ライブラリに関してよく寄せられる質問 の Q10:
コンパイラ警告 “C4530: C++ 例外処理を使っていますが…
Re: Warning C4530, exception handling
eVC 4.0 以降は /GX オプションを利用可能であり、CE 4.0 以降ならば、C++例外をサポート可能だが、実際にC++例外が使用できるかどうかはデバイスのコンフィギュレーション次第である。
Re: Warning C4530, exception handling
デバイスのコンフィギュレーション次第というのはちょっと怖いが、まあ、別に例外をキャッチするつもりもないのでいいだろう。
/GX オプションは、構成ごとに手で入れなければならなかった。