// Destructor. If there is a C object, delete it.
// We don't need to test ptr_ == NULL because C++ does that for us
~scoped_ptr() {
enum { type_must_be_complete = sizeof(C) };
delete ptr_;
}
注: C はテンプレート パラメータです。
null ポインターを削除できないことはわかっています。例外が発生します。したがって、この場合、列挙定義はそれを防ぐために何かをしている必要があります。本番環境では、null ポインターがあるため、プログラムを単純に終了したくない場合があります。ポインターが null の場合は、別のシナリオを検討したい場合があります。そして、このコードは本番環境でほぼどこでも使用されていますか?
みんなありがとう。