Modern C++ has many neat RAII-based solutions for managing resources. However, every now and then
one needs to manually make sure that some code is run when a resource is not needed anymore. One
great solution to this problem is a scope guard. The concept is already very old, however I have
surprisingly rarely seen them used (and used them too rarely myself). This article describes the
concept, shows how to use it and gives some background on scope guards.