- protected:
- /**
- * destroyNow() is invoked to actually destroy the object, after destroy()
- * has been called and no more DestructorGuard objects exist. By default it
- * calls "delete this", but subclasses may override this behavior.
- *
- * @param delayed This parameter is true if destruction was delayed because
- * of a DestructorGuard object, or false if destroyNow() is
- * being called directly from destroy().
- */
- virtual void destroyNow(bool delayed) {
- delete this;
- (void)delayed; // prevent unused variable warnings