_ATL_ALL_WARNINGS
更新 : 2007 年 11 月
以前のバージョンの ATL から変換されたプロジェクトのエラーを有効にするシンボルです。
#define _ATL_ALL_WARNINGS
解説
Visual C++ .NET 2002 より前のバージョンでは、ATL では多くの警告を無効にし、ユーザー コードで表示されないように無効のままにしていました。具体的には、以下の警告があります。
C4127 条件式が定数です。
C4786 'identifier' : デバッグ情報で識別子が 'number' 文字に切り捨てられました。
C4201 非標準の拡張機能が使用されています。無名の構造体または共用体です。
C4103 'filename' : デフォルトの構造体配置に変換するための pack プラグマを使っています。
C4291 'declaration' : 初期化コードが例外をスローすると、'new' 演算子を使用しているとメモリを解放しません。
C4268 'identifier' : オブジェクトをゼロで埋めるコンパイラが生成した既定のコンストラクタで const static/global データは初期化されました。
C4702 制御が渡らないコードです。
以前のバージョンから変換されたプロジェクトでは、これらの警告がライブラリ ヘッダーにより無効のままになります。
ライブラリ ヘッダーをインクルードする前に、次に示す行を stdafx.h ファイルに追加すると、この動作を変更できます。
#define _ATL_ALL_WARNINGS
この #define を追加すると、ATL ヘッダーは警告の状態を正しく保存し、警告がグローバルに無効にされないようにします。ただし、ユーザーが明示的に個別の警告を無効にしている場合は、有効にできません。
Visual C++ .NET 2002 で生成される新しいプロジェクトでは、stdafx.h にこの #define が既定で設定されます。