teppy以下のようなマクロ定義を見かけることがあります。p;}昔々、マイクロソフトがDirectXのサンプルで上記のようなマクロを定義していたことがあり、恐らく、多くの人がそのサンプルのままで覚えた結果、特に深く考えずに実装しているケースも少なくないのでしょう。ポインタがnullじゃないことを判定した後、deleteするという処理です。delete対象のポインタがnullだった場合、どうなるのでしょう?未定義の動作でしょうか?アクセス例外でハングアップしたり、ニュージャージー州に住む叔母に勝手にメールを送るような動作を引き起こしたりするでしょうか?答えは「何も起こらない」deleteにnullポインタを渡しても安全であると規格にも明記されています。Delete知っている人には当たり前でも、案外知らずにC++を使っている人も多いように感じます。nullかどうかを気にせずポインタをdelete出来るかわりに、今度は別の、気をつけなければいけないことが生じます。自分でdelete演算子を定義する場合です。ユーザー定義のメモリ解放処理}}規格に準ずる為にはnullを許容する実装になっていなければいけません。