Как создать распределитель пула для абстрактного базового класса в C ++? - PullRequest
1 голос
/ 29 сентября 2010

Мы столкнулись с ошибкой в ​​malloc () из glibc: http://sourceware.org/bugzilla/show_bug.cgi?id=4349, и сейчас я думаю, что до обновления до более поздней версии glibc нужно выполнить групповое выделение для небольших объектов, у которых есть много экземпляров, приходящих и уходящих .

Все мелкие объекты являются производными от абстрактного базового класса. Я хотел бы найти хороший шаблон (с использованием boost в порядке), чтобы автоматически обеспечить распределение пула в базовом классе и обеспечить его правильную работу для многих производных классов.

Будет ли это сделано путем определения оператора new () в абстрактном базовом классе? Как бы он организовал наличие разных пулов для каждого производного класса, которые могли бы иметь разный фактический объем памяти?

1 Ответ

1 голос
/ 29 сентября 2010

Одной из очевидных отправных точек будет библиотека Boost Pool . К сожалению, модель, которую вы хотите, пока не представлена, хотя и указана в качестве единственного элемента в разделе «Будущие направления». OTOH, эта библиотека не была обновлена ​​в настоящее время. Вероятность того, что она будет обновлена ​​для включения этой модели, очень скоро покажется немного отдаленной (по крайней мере, мне).

...