ScopeGuard for C++11 from Andrei Alexandrescu