30 using nothrow_move_t = std::is_nothrow_move_constructible<Fun>;
31 using nothrow_copy_t = std::is_nothrow_copy_constructible<Fun>;
34 bool dismissed_{
false};
36 using ref_t =
decltype(std::ref(std::declval<Fun const &>()));
49 scope_exit(Fun
const & fun, std::true_type) noexcept
53 scope_exit(Fun && fun, std::true_type) noexcept
54 : fun_(std::move(fun))
71 std::is_nothrow_move_constructible<Fun>::value)
72 :
scope_exit(std::move((that.dismiss(), that)).fun_)
81 void dismiss()
noexcept