Okay, thanks for the explanation. So basically, clear() just calls __dtor(), and then zeros out the vtable? I don't understand what you mean by "I don't believe that it destroys what the object references"... why should clear() ever destroy anything except the object that it's destroying?