2012-04-09 24 views

答えて

2

boost::arrayは、テンプレートパラメータに基づいて動作します。テンプレートパラメータは実行時の値にすることはできません。そうではありません。

また、VLAはスタック上で宣言された配列(ObjType val[someInteger];)にのみ適用されます。彼らはオブジェクト(struct ObjType { int val[someInteger]; };を宣言したアレイには適用されません。テンプレートパラメータは、実行時の値になることができるようにしても、それはあなたを助けないだろう。

をあなただけの使用、ヒープの割り当てを買う余裕ができない場合std::vectorアロケータがあらかじめ割り当てられたメモリの "スタック"からプルするアロケータを持っています

+0

STL、Boostなどのスタック型アロケータを提供していますか、それとも自分で書く必要がありますか? –

+0

STLは、 Boostは、プールされたメモリアロケータ(http://www.boost.org/doc/libs/1_49_0/libs/pool/doc)を含むいくつかのアロケータを提供しています。 /html/index.html)あなたが望むことをするかもしれない。そうでなければ、あなたはhavそれを書いてください。 –

関連する問題