Me preguntaba cuál es el límite de tamaño para una clase. Hice una prueba sencilla:¿Cuál es el límite de tamaño para una clase?
#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);
No es capaz de compilar con
" 'J': clase es demasiado grande"
Si quito el final de declaración - CLS(J,I);
, se todo compila bien.
¿Es esta una restricción impuesta por el compilador, o está en algún lugar del estándar?
Con la última definición, llega a unos 10 GB (dependiendo del relleno) para la clase J. – dalle
Lo estaba declarando, no realmente usándolo.Apuesto a que declarar una matriz de algunas clases H rompería el tiempo de ejecución :) –