私は、クラスのサイズの制限は何かと思っていました。私は簡単なテストをした:クラスのサイズ制限はいくらですか?
それはでコンパイルに失敗し
#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);
を、それすべてコンパイルされます。
これはコンパイラに課せられた制限ですか、それとも標準のどこかにありますか?
最後に、Jクラスの約10 GB(パディングに応じて)に達します。 – dalle
私はただそれを宣言していましたが、実際には使用していませんでした。私はいくつかのHクラスの配列を宣言することは、ランタイムを破るだろう:) –