newとdeleteの多重定義を行ってメモリ管理を自前で行いたいと思っています。
自前で定義したnew演算子は呼び出せるのですが、
自前で定義したdelete演算子を呼び出す方法がわかりません。
どなたか正しい方法をご存知の方はいらっしゃらないでしょうか。
使用しているコンパイラはVC6です。




void *operator new( size_t size, my_allocator& alloc )
{
return alloc.allocate( size );
}

void operator delete( void* pointer, my_allocator& alloc )
{
alloc.deallocate( pointer );
}

class X;

void f( my_allocator& alloc )
{
X* array = new( alloc ) X(); // 自前で定義したnew演算子を呼び出す。

// delete( alloc ) X; // エラーが出る。この方法は間違いらしい。
// delete X; // 標準のdelete演算子が呼び出されてしまうのでダメ。
}