Resource Acquisition Is Initialization (RAII) is a pattern I grew to love when working in C++. It is perfectly suited for resource management such as matching all those pesky new's and delete's. One of my goals was to limit the explicit deallocation statements I had to write. Often these statements became victims of run-time control flow changes (i.e. exceptions, unhappy path) or development-time code refactoring.