我有以下分配器类:
template <class BackingAllocator>
class ScratchAllocator : public Allocator // Allocator is non-copyable
{
public:
ScratchAllocator(size_t size, BackingAllocator& ref_allocator);
ScratchAllocator(size_t size);
~ScratchAllocator();
// Allocate, Free, ...
private:
BackingAllocator& m_backingAllocator;
char* m_begin;
char* m_end;
char* m_allocate;
char* m_free;
};
我希望能够通过在构造函数中提供支持分配器引用来创建ScratchAllocator
(在这种情况下,它是&#39; sa MallocAllocator
),在这种情况下,支持调用allocator的默认构造函数。
问题是我在我的类中将支持分配器存储为引用,所以如果我尝试在构造函数中给它一个默认值,它将被范围的终点。
我想到的一个可能的解决方案是分配一个分配器,但问题是如果提供了支持分配器则没有必要。
有什么想法吗?
修改
我无法按值获取BackingAllocator,因为在Allocator类中禁用了赋值运算符。