C4351
たまたまVisualStudio2005使っていたら C4351 なんて警告が出た。
class CTest { public: CTest() : m_anValue() // C4351 { } virtual ~CTest() { } private: int m_anValue[ 100 ]; };
コンストラクタの初期化リストに配列を入れていると起こる模様。今までは配列が初期化されることは無かったが、VisualStudio2005では配列の初期化が行われるように動作が変更されている。今まで全部の変数を初期化リスト入れるように実装していたが、便利になった模様。
#if _MSC_VER > 1310 #pragma warning( disable : 4351 ) #endif
を入れておけば、警告はされないで初期化はされる。