Scope guard
Назначение
Решаемые задачи
Общая реализация на языке C++
class ScopeGuard {
public:
ScopeGuard () : engaged_(true)
{
/* Выделение ресурсов */
}
~ScopeGuard() {
if (engaged_)
{
/* Освобождение ресурсов */
}
}
void release()
{
engaged_ = false;
/* Ресурсы больше не будут освобождаться */
}
private:
bool engaged_;
};Last updated