1

利用可能な場合は内部でC99の可変長配列(VLA)を使用し(GCC)、それ以外の場合はヒープベースを使用する動的なバリアントはありますか?boost::array

4

1 に答える 1

2

boost::arrayテンプレートパラメータに基づいて動作します。テンプレートパラメータを実行時の値にすることはできません。だからいいえ。

また、VLAは、スタック(ObjType val[someInteger];)で宣言された配列にのみ適用されます。オブジェクト内で宣言された配列には適用されません(struct ObjType { int val[someInteger]; };したがって、テンプレートパラメータが実行時の値である可能性がある場合でも、役に立ちません。

ヒープを割り当てる余裕がない場合はstd::vector、事前に割り当てられたメモリの「スタック」からプルするアロケータでを使用してください。

于 2012-04-09T16:56:01.510 に答える