Мне было интересно, каков предел размера для класса. Я провел простой тест:
#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);
, все компилируется нормально.
Это ограничение, наложенное компилятором, или это где-то в стандарте?