Можно ли в C++ для создания пользовательского аллокатора, который работает просто как это:Создание настраиваемого пула памяти/распределителя памяти?
{
// Limit memory to 1024 KB
ScopedMemoryPool memoryPool(1024 * 1024);
// From here on all heap allocations ('new', 'malloc', ...) take memory from the pool.
// If the pool is depleted these calls result in an exception being thrown.
// Examples:
std::vector<int> integers(10);
int a * = new int [10];
}
Я не мог найти что-то подобное в библиотеках наддува, или где-нибудь еще.
Есть ли фундаментальная проблема, которая делает это невозможным?
Посмотрите библиотеку Boost.Pool. 'boost :: pool_allocator' и' boost :: fast_pool_allocator' могут использоваться как распределители для 'std :: vector' и других контейнеров. –