Я пытаюсь реализовать распределитель стека, который будет работать с std::vector. Существует множество уже существующих реализаций, подобных этой или этой. Однако все они предполагают, что буфер не является членом, а предоставляется распределителю пользователем. В комментарии к реализации Chromium даже говорится, что:
STL любит создавать копии распределителей, поэтому сам распределитель не может хранить данные.
Я попробовал сам, и вектор дает сбой в своем деструкторе. Похоже, что он создает временную версию моего распределителя для контейнерного прокси, через нее выделяет память и тут же уничтожает ее, делая указатель на выделенные данные висячим.
Возможно ли это на самом деле? иметь распределитель, который хранит статический буфер в качестве члена?
Подробнее здесь: https://stackoverflow.com/questions/792 ... s-a-buffer