diff --git a/include/gsl.h b/include/gsl.h index 824ca6a..c223381 100644 --- a/include/gsl.h +++ b/include/gsl.h @@ -73,30 +73,30 @@ using owner = T; // GSL.util: utilities // -// final_act allows you to ensure something gets run at the end of a scope +// final_action allows you to ensure something gets run at the end of a scope template -class final_act +class final_action { public: - explicit final_act(F f) noexcept : f_(std::move(f)), invoke_(true) {} + explicit final_action(F f) noexcept : f_(std::move(f)), invoke_(true) {} - final_act(final_act&& other) noexcept : f_(std::move(other.f_)), invoke_(other.invoke_) { other.invoke_ = false; } - final_act(const final_act&) = delete; - final_act& operator=(const final_act&) = delete; + final_action(final_action&& other) noexcept : f_(std::move(other.f_)), invoke_(other.invoke_) { other.invoke_ = false; } + final_action(const final_action&) = delete; + final_action& operator=(const final_action&) = delete; - ~final_act() noexcept { if (invoke_) f_(); } + ~final_action() noexcept { if (invoke_) f_(); } private: F f_; bool invoke_; }; -// finally() - convenience function to generate a final_act +// finally() - convenience function to generate a final_action template -final_act finally(const F &f) noexcept { return final_act(f); } +final_action finally(const F &f) noexcept { return final_action(f); } template -final_act finally(F &&f) noexcept { return final_act(std::forward(f)); } +final_action finally(F &&f) noexcept { return final_action(std::forward(f)); } // narrow_cast(): a searchable way to do narrowing casts of values template