C++ destructors are the most important feature of C++. The power wielded through deterministic object unwinding cannot be underestimated. Resource leaks are the bane of games, and destructors are an essential part of the solution. But destructors provide much more than simple object cleanup. This presentation will cover all aspects of C++ object destruction, ranging from destructor performance to best practices. Topics include order of destruction, implicit destructors, and details around how destructors are affected by exception handling, polymorphism, and partially constructed objects. This also covers related topics like the delete operator, STL allocator::deallocate, and shared_ptr deletors.