boost::pool<> 构造函数采用“元素大小”参数。
boost::object_pool 构造函数采用“元素的初始#”参数。
我想用“元素大小 S”和“元素的初始 N”创建池。
boost::pool 可以做到这一点吗?
谢谢
boost::pool<> 构造函数采用“元素大小”参数。
boost::object_pool 构造函数采用“元素的初始#”参数。
我想用“元素大小 S”和“元素的初始 N”创建池。
boost::pool 可以做到这一点吗?
谢谢
你可以用object_pool
; 它根据模板参数推断ElementType
其元素的大小,因此无需显式指定大小。您可以将请求的块数(您的“N”)指定为附加的构造函数参数。
根据 OP 评论更新:
从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 个整数的初始分配。超过初始分配的块后,存储空间将增加一倍。