VC++ 7.0を使っています。以下のコードでエラーC2327
[data2 : 外側のクラスのメンバは型名、スタティック、または列挙子ではありません。]
が発生します。struct中の宣言を一つだけにすればコンパイルは通るのですが、
二つにしたとたんエラーが出ます。これは私が悪いのでしょうか?
コンパイラが悪いのでしょうか?

class C
{
   static const intwidth=64;
   static const intheight=64;

   struct
   {
      float data1[width][height];
      int data2[width][height]; //ここでエラー
   }S;
};
・補足
struct{ //これでコンパイルは通ります
   float data1[width][height];
   //int data2[width][height];
}S;
struct{ //これでも通ります
   //float data1[width][height];
   int data2[width][height];
}S;
struct{ //これでもなぜか通ります
   int data2[width][height];
   float data1[width][height];
}S;