Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否有动态变体在可用时(GCC)在内部boost::array使用 C99 的可变长度数组(VLA),否则使用基于堆的?
boost::array
boost::array基于模板参数工作。模板参数不能是运行时值。所以不行。
此外,VLA 仅适用于在堆栈 ( ObjType val[someInteger];) 上声明的数组。它们不适用于在对象 (中声明的数组struct ObjType { int val[someInteger]; };。因此,即使模板参数可以是运行时值,它也无济于事。
ObjType val[someInteger];
struct ObjType { int val[someInteger]; };
如果您负担不起堆分配,只需将 astd::vector与从预分配内存的“堆栈”中提取的分配器一起使用。
std::vector