RosettaCodeData/Task/Memory-allocation/C++/memory-allocation-7.cpp

16 lines
300 B
C++

class arena { /* ... */ };
void* operator new(std::size_t size, arena& a)
{
return arena.alloc(size);
}
void operator delete(void* p, arena& a)
{
arena.dealloc(p);
}
arena whatever(/* ... */);
int* p = new(whatever) int(3); // uses operator new from above to allocate from the arena whatever