新しい形式の new と delete については、次の注意事項があります。
配列の形式
例外の指定
置き換え関数
ヘッダーファイル
互換モードでは、デフォルトで古い規則が適用されます。標準モードでは、デフォルトで新しい規則が適用されます。古い実行時ライブラリ (libC.so) は古い定義と動作に依存し、新しい標準ライブラリ (libCstd.so) は新しい定義と動作に依存するため、デフォルトを変更することはお勧めできません。
新しい規則を適用した場合、コンパイラは事前に _ARRAYNEW マクロを 1 に定義します。古い規則を適用した場合、このマクロは定義されません。次の使用例を参照してください。この意味については、次の節で詳しく説明します。
// 置き換え関数 #ifdef _ARRAYNEW void* operator new(size_t) throw(std::bad_alloc); void* operator new[](size_t) throw(std::bad_alloc); #else void* operator new(size_t); #endif