Как правильно написать delete для аллокатораC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как правильно написать delete для аллокатора

Сообщение Anonymous »

У меня есть решение, в котором мне нужно написать собственный распределитель, который использует std::vector в качестве хранилища для объектов, выделенных с его помощью. Я использую std::shared_ptr для std::vector и знаю, что он использует delete по умолчанию для std::vector. Должен ли я написать собственное средство удаления для моего класса распределителя или я могу оставить средство удаления по умолчанию?

Код: Выделить всё

#pragma once

#include 
#include 

template
class Allocator : public std::pmr::memory_resource {
private:
std::shared_ptr memory_pool;
std::shared_ptr free_index;

void* do_allocate(size_t bytes, size_t alignment) override;
void do_deallocate(void* p, size_t bytes, size_t alignment) override;
bool do_is_equal(const std::pmr::memory_resource& other) const noexcept override;

public:
Allocator();
~Allocator() noexcept = default;
};
Это мой файл .hpp.

Подробнее здесь: https://stackoverflow.com/questions/798 ... -allocator
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»