可变长度数组C ++包装容器

时间:2012-04-09 16:24:23

标签: c++ arrays memory-management boost containers

boost::array动态变体是否在可用时(GCC)和堆内部使用C99的可变长度数组(VLA) 否则?

1 个答案:

答案 0 :(得分:2)

boost::array基于模板参数工作。模板参数不能是运行时值。所以没有。

此外,VLA仅适用于在堆栈上声明的数组(ObjType val[someInteger];)。它们不适用于在对象(struct ObjType { int val[someInteger]; };中声明的数组。因此,即使模板参数可能是运行时值,它也无济于事。

如果您无法承担堆分配,只需使用std::vector和分配器,该分配器从预先分配的内存的“堆栈”中提取。