C++分配器存储不同类型的对象

C++ allocator to store objects of different types

我有一堆物品被 unique_ptrs 包裹着。
每个对象都有自己的类型。
我想创建一种内存池来存储所有这些对象,以避免为每个最后一个对象分配堆。像这样:

分配器分配器(1024); // 应该是可扩展的
unique_ptra = allocator.allocateAndWrapToUPtr();
unique_ptrb=allocator.allocateAndWrapToUPtr();
C* c = allocator.allocate< C >();

据我所知,分配器被指定为
模板
class 我的分配器;
因此它们只能存储一种类型的对象。

是否可以实现“多类型”分配器?

不可能在项目的所有地方都使用一个分配器。 动态分配器示例可以在 dmitrysoshnikov.com/compilers/writing-a-pool-allocator 找到,它允许用 unique_ptrs 解决初始问题。
但它不符合 stl,因此不能用于 collections 等。