operator delete (<new>)

個々のオブジェクトに割り当てられたストレージを解放するために delete 式で呼び出される関数です。

void operator delete(
   void* _Ptr
) throw( );
void operator delete(
   void *, 
   void *
) throw( );
void operator delete(
   void* _Ptr,
   const std::nothrow_t&
) throw( );

パラメーター

  • _Ptr
    削除によって値が無効にされるポインター。

解説

最初の関数は delete 式で _Ptr の値が無効するために呼び出されます。プログラムは、標準 C++ ライブラリで定義されている既定のバージョンを置き換えるこの関数のシグネチャと関数を定義できます。必須の動作が null の場合、または 新しい演算子 () size_t、前の呼び出しによって返される _Ptr の値を使用することです。

_Ptr の null 値の既定の動作は、何もしないことです。_Ptr のそのほかの値は呼び出しによって返される前に説明したように、値である必要があります。_Ptr の非常に null 以外の値の既定の動作は前の呼び出しで割り当てられたメモリを解放します。また、は、このようなすべて解放されたストレージが operator new () にsize_t以降の呼び出しによってパーツまたは callocsize_t ()、malloc (size_t)、または realloc (void*size_t) またはのいずれかに割り当てられているか、条件がの下に指定されていません。

2 番目の関数は、フォーム new () std::size_tに新しい式に対応する配置の削除の式によって呼び出されます。これは何も実行しません。

3 番目の関数は、フォーム new (std::size_t[const]std::nothrow_t&) に新しい式に対応する配置の削除の式によって呼び出されます。プログラムは、標準 C++ ライブラリで定義されている既定のバージョンを置き換えるこの関数のシグネチャと関数を定義できます。必須の動作が null の場合、または operator new () size_t、前の呼び出しによって返される _Ptr の値を使用することです。既定の動作では、[削除]_Ptr () を評価することです。

使用例

例については 新しい演算子 を参照してください operator deleteを使用する。

必要条件

ヘッダー: <new>

名前空間: std