увеличить пул с указанным размером элемента и указанным начальным # элемента? - PullRequest
1 голос
/ 10 марта 2011

Конструктор boost :: pool <> принимает параметр "size элемента".
Конструктор boost :: object_pool принимает параметр "initial # of element".

Я хочу создать пул с "размером элемента S"."и" начальный N элемента ".
Возможно ли это с помощью boost :: pool?

Спасибо

1 Ответ

2 голосов
/ 10 марта 2011

Вы можете сделать это с помощью object_pool; он выводит размер своего элемента на основе параметра шаблона ElementType, поэтому нет необходимости явно указывать размер. В качестве дополнительного параметра конструктора вы можете указать запрошенное количество блоков (ваше 'N').

Обновление на основе комментариев OP:

Из boost::pool источника:

explicit pool(const size_type nrequested_size,
    const size_type nnext_size = 32)

Так что вы можете просто сделать это:

boost::pool<> p(8 * sizeof(int), 64);

Если вам нужен пул, который возвращает куски размером 8 дюймов и делает начальное выделение 64 * 8 дюймов. После того, как вы превысили первоначальное распределение чанков, объем хранилища увеличится вдвое.

...