如何在C++中为抽象基类创建池分配器?

问题描述:

已经遇到了glibc的malloc():http://sourceware.org/bugzilla/show_bug.cgi?id=4349的一个bug,我现在正在考虑解决一个问题,直到更新到glibc的更高版本,它将为有许多实例来来去去的小对象做分配分配。如何在C++中为抽象基类创建池分配器?

小对象都来自抽象基类。我想找到一个好的模式(使用boost可以),以便在基类中自动提供池分配,并使它适用于许多派生类。

这是通过在抽象基类中定义一个运算符new()来完成的吗?如何为每个可能具有不同实际内存大小的派生类组织不同的池?

一个明显的出发点是Boost Pool库。不幸的是,你想要的模型是它现在还没有提供的模型,虽然它被列为“未来方向”下的唯一项目。 OTOH,这个库现在还没有更新。更新其包含该模型的机会似乎很遥远(至少对我而言)。