高価なコンストラクタを持つクラスがあり、それが "シンプル"なのでコンストラクタを作成する必要はないとしましょう。クラスの中で、私はtypedefを入れたいです。すべて一緒に、それは次のようになります。私がしなければクラス内のtypedef
今class Expensive {
public:
typedef double data_type;
data_type data[100000][100000];
};
、私の呼び出し元のコードでは、:
Expensive::data_type singleValue;
がExpensive
の一時的なインスタンスを作成し、データのために、すべてのそのスペースを割り当てるために行くということですtypedefにアクセスするだけですか?
幸運にもそれをスタックに割り当てる。なぜあなたは 'data_type data [100000] [100000];'を書かないのですか? –
質問を強調するのは、人為的な例でした。インテルのコンパイラを使用していて、実際にそれが機能したければ、すべての配列をヒープ上に置くフラグがあります。または、私のスタックを無制限に 'ulimit'してください。 – tpg2114
申し訳ありませんが、(a)コードが貧弱で、(b)ほとんどの設定ではうまくいかないので、愚かな例です –