Как правильно написать 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

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