[VC60] SP5: ユーザー定義型の配列メンバで C2233 エラーが発生する

この記事は、以前は次の ID で公開されていました: JP216977
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
別のテンプレート クラスの配列であるデータ メンバを含むテンプレート クラスをコンパイルする場合、別のテンプレート クラスにも配列であるデータ メンバが含まれ、かつ両配列のサイズがテンプレート パラメータに依存していると、次のようなエラー メッセージが表示される場合があります。
コンパイル エラー C2233: '<Unknown>' : サイズが 0 の配列を含むオブジェクトの配列は不正です。
解決方法
Visual Studio(R) 6.0 Service Pack 5 をインストールすることで解決できます。
以下は Service Pack 5 を適用しない場合の解決方法です。
配列の代わりにポインタを使用します。コンストラクタでこの配列のための領域を割り当て、デストラクタで割り当てを解除します。

状況
資料の冒頭に記載している製品の障害として確認しております。
この障害は Visual Studio(R) 6.0 Service Pack 5 にて修正されました。
Visual Studio 6.0 Service Pack の詳細情報は、弊社 Web サイトをご覧ください。

http://www.microsoft.com/japan/developer/vstudio/download/sp/vs6sp.htm
詳細

問題の再現手順

template <int k>class A{    char x[k];};template <int h, int j>class B  {     A<h> y[j];};

問題を回避するための手順(SP5を適用しない場合)

template <int k>class A{    char *x;    A() {        x = new char[k];    }    ~A() {        delete[] x;    }};template <int h, int j>class B  {     A<h> y[j];};
関連情報
194295[VS60] Service Pack がインストール済みか確認するには
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 216977 (最終更新日 2000-10-20) をもとに作成したものです。

プロパティ

文書番号:216977 - 最終更新日: 02/23/2014 08:06:29 - リビジョン: 2.3

  • Microsoft Visual C++ 6.0 Service Pack 5
  • kbnosurvey kbarchive kbqfe kbhotfixserver kbbug kbfix kbvs600sp5 vc60 vs60 KB216977
フィードバック