1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#ifndef SWIFTEN_Deleter_H #define SWIFTEN_Deleter_H #include <cassert> namespace Swift { template<typename T> class Deleter { public: Deleter(T* object) : object_(object) { } void operator()() { assert(object_); delete object_; object_ = 0; } private: T* object_; }; } #endif