std :: string with stateful Allocator

时间:2014-11-10 21:35:24

标签: c++ stdstring allocator

我有一个分配器,它根据实例变量MemoryContext分配内存。我尝试为这种分配器创建std::string。标题看起来像这样

class String {
private:
    std::basic_string< char
                        , std::char_traits<char>
                        , MemoryContextAllocator<char> >  my_string;

public:
    explicit String( MemoryContext* memoryContext );
    ~String();
    MemoryContextAllocator<char> getAllocator() const;

};

来源看起来像这样

String::String(MemoryContext* memoryContext)
:my_string( MemoryContextAllocator<char>(memoryContext) )
{
}

String::~String() {
}

在编译期间,我收到类似这样的错误

  

/ usr / include / c ++ / 4.8 / bits / basic_string.tcc:156:27:错误:没有匹配函数来调用“MemoryContextAllocator<char>::MemoryContextAllocator()

它试图在没有参数的情况下调用allocator的构造函数。如果我不想引入这个默认构造函数并使用setter,我该如何解决这个问题?

0 个答案:

没有答案