rename no_action and bring it out into detail namespace

This commit is contained in:
Treb Connell 2015-10-02 15:14:39 -07:00
parent 52df7c35e6
commit 518cad65a4

View File

@ -73,6 +73,11 @@ using owner = T;
// GSL.util: utilities // GSL.util: utilities
// //
namespace detail
{
void no_action() noexcept {}
}
// final_act allows you to ensure something gets run at the end of a scope // final_act allows you to ensure something gets run at the end of a scope
template <class F> template <class F>
class final_act class final_act
@ -80,7 +85,7 @@ class final_act
public: public:
explicit final_act(F f) noexcept : f_(std::move(f)) {} 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(const final_act&) = delete;
final_act& operator=(const final_act&) = delete; final_act& operator=(const final_act&) = delete;
@ -88,8 +93,6 @@ public:
private: private:
F f_; F f_;
static void NoAction(){}
}; };
// finally() - convenience function to generate a final_act // finally() - convenience function to generate a final_act