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
//
namespace detail
{
void no_action() noexcept {}
}
// final_act allows you to ensure something gets run at the end of a scope
template <class F>
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