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

Variable Length Array C++ Wrapper Container

本文关键字:包装 C++ 数组      更新时间:2023-10-16
是否有

动态变体boost::array可以在内部使用 C99 的可变长度数组 (VLA) (GCC) 并以其他方式基于堆?

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

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

如果您负担不起堆分配,只需使用带有分配器的std::vector,该分配器从预分配的内存"堆栈"中提取。