diff --git a/include/gsl.h b/include/gsl.h index 0477c02..6da10c4 100644 --- a/include/gsl.h +++ b/include/gsl.h @@ -73,6 +73,11 @@ using owner = T; // GSL.util: utilities // +namespace detail +{ + void no_action() noexcept {} +} + // final_act allows you to ensure something gets run at the end of a scope template class final_act @@ -80,7 +85,7 @@ class final_act public: explicit final_act(F f) noexcept : f_(std::move(f)) {} - final_act(final_act&& other) noexcept : f_(std::move(other.f_)) { other.f_ = NoAction; } + final_act(final_act&& other) noexcept : f_(std::move(other.f_)) { other.f_ = detail::no_action; } final_act(const final_act&) = delete; final_act& operator=(const final_act&) = delete; @@ -88,8 +93,6 @@ public: private: F f_; - - static void NoAction(){} }; // finally() - convenience function to generate a final_act