1

boost::pool<> 构造函数采用“元素大小”参数。
boost::object_pool 构造函数采用“元素的初始#”参数。

我想用“元素大小 S”和“元素的初始 N”创建池。
boost::pool 可以做到这一点吗?

谢谢

4

1 回答 1

2

你可以用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 个整数的初始分配。超过初始分配的块后,存储空间将增加一倍。

于 2011-03-10T02:13:40.537 回答