【发布时间】:2011-07-12 09:32:18
【问题描述】:
boost::pool 构造函数采用“元素大小”参数。
boost::object_pool 构造函数采用“initial # of element”参数。
我想用“元素大小 S”和“元素的初始 N”创建池。
boost::pool 可以做到这一点吗?
谢谢
【问题讨论】:
标签: boost pool boost-pool
boost::pool 构造函数采用“元素大小”参数。
boost::object_pool 构造函数采用“initial # of element”参数。
我想用“元素大小 S”和“元素的初始 N”创建池。
boost::pool 可以做到这一点吗?
谢谢
【问题讨论】:
标签: boost pool boost-pool
您可以使用object_pool 做到这一点;它根据ElementType 模板参数推断其元素的大小,因此无需显式指定大小。您可以指定请求的块数(您的“N”)作为附加的构造函数参数。
基于 OP cmets 的更新:
来自boost::pool 来源:
explicit pool(const size_type nrequested_size,
const size_type nnext_size = 32)
所以你可以这样做:
boost::pool<> p(8 * sizeof(int), 64);
如果您想要一个返回大小为 8 个整数的块的池,并进行 64 * 8 个整数的初始分配。超过初始分配的块后,存储将翻倍。
【讨论】: