Я хотел бы знать, как адаптировать раздел 11.14 C ++ - FAQ-lite к массивам.
В принципе, я бы хотел что-то вроде этого:
class Pool {
public:
void* allocate(size_t size) {...}
void deallocate(void* p, size_t size) {...}
};
void* operator new[](size_t size, Pool& pool) { return pool.allocate(size); }
void operator delete[](void* p, size_t size, Pool& pool) { pool.deallocate(p, size); }
struct Foo {...};
int main() {
Pool pool;
Foo* manyFoos = new (pool) Foo [15];
/* ... */
delete [] (pool) manyFoos;
}
Однако я не смог выяснить правильный синтаксис для объявления и вызова этого operator delete[] (pool)
. Кто-нибудь может здесь помочь?