Я как белый человек использовал и читал доки только по std::string, да и подумать я не мог что класс может принимать сторонние аллокаторы :) jcmvbkbc вы бы не могли подсказать как правильно описать класс аллокатор? Сейчас я сделал так
class Ealloc : public std::allocator< char >
{
void *allocate(size_t size, void *ptr = nullptr);
void destroy( void * );
};
// ...
class string : public std::basic_string<char, std::char_traits<char>, Ealloc> //...
// ...
void *Data::Ealloc::allocate(size_t size, void *ptr)
{
return ptr == nullptr ? emalloc(size) : erealloc(ptr, size);
}
void Data::Ealloc::destroy( void *ptr )
{
efree(ptr);
}
и я так и не понял что делает метод deallocate ? Что значит реализовать не реализованную память?