// 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是模板参数
我知道我们不能删除空指针,会引发异常。所以在这种情况下,枚举定义必须做一些事情来防止这种情况发生。在生产中,有时我们不想简单地结束程序,因为我们有一个空指针,我们可能想看看替代方案,当指针为空时。而且这段代码几乎在任何地方都在生产中使用?
多谢你们。