Каков предел размера для класса?

Мне было интересно, каков предел размера для класса. Я провел простой тест:

#define CLS(name,other) \
class name\
{\
public: \
name() {};\
   other a;\
   other b;\
   other c;\
   other d;\
   other e;\
   other f;\
   other g;\
   other h;\
   other i;\
   other j;\
   other k;\
};

class A{
   int k;
public:
   A(){};
};

CLS(B,A);
CLS(C,B);
CLS(D,C);
CLS(E,D);
CLS(F,E);
CLS(G,F);
CLS(H,G);
CLS(I,H);
CLS(J,I);

Не удалось скомпилировать с

«'J': класс слишком велик»

Если я удалю последнее объявление - CLS (J, I); , все компилируется нормально.

Это ограничение, наложенное компилятором, или это где-то в стандарте?

9
задан Luchian Grigore 22 December 2011 в 13:45
поделиться