title: Weird enum in destructor
body: <p>Currently, I am reading the source code of <code>Protocol Buffer</code>, and I found one weird <code>enum</code> codes defined <a href="https://github.com/google/protobuf/blob/master/src/google/protobuf/stubs/scoped_ptr.h#L72-L75" rel="noreferrer">here</a></p>
  
  <pre><code>  ~scoped_ptr() {
      enum { type_must_be_complete = sizeof(C) };
      delete ptr_;
    }
  
    void reset(C* p = NULL) {
      if (p != ptr_) {
        enum { type_must_be_complete = sizeof(C) };
        delete ptr_;
        ptr_ = p;
      }
    }
  </code></pre>
  
  <p>Why the <code>enum { type_must_be_complete = sizeof(C) };</code> is defined here? what is it used for?</p>