新しい関数をオーバーロードしましたが、残念ながら、コンパイラでより多くのメモリ アクセスを要求するグローバル ハンドラを実行できませんでした。また、以下のコード スニペットのように、より多くのメモリを要求するためにグローバル ハンドラーを呼び出すと、P への割り当てがどのように行われるかわかりません。
誰かがこれについて何らかの光を当てることができれば幸いです
void * Pool:: operator new ( size_t size ) throw( const char *)
{
int n=0;
while(1)
{
void *p = malloc (100000000L);
if(p==0)
{
new_handler ghd= set_new_handler(0);//deinstall curent handler
set_new_handler(ghd);// install global handler for more memory access
if(ghd)
(*ghd)();
else
throw "out of memory exception";
}
else
{
return p;
}
}
}