1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#pragma once void RemoveAsciiControlSequences(char* str, bool allow_color_codes); class ScopeGuard { public: auto operator=(ScopeGuard&) = delete; ScopeGuard(ScopeGuard&) = delete; ScopeGuard(std::function<void()> callback) : m_callback(callback) {} ~ScopeGuard() { m_callback(); } void Dismiss() { m_callback = [] {}; } private: std::function<void()> m_callback; };