| @@ -68,19 +68,19 @@ namespace sr | |||
| > | |||
| explicit unique_resource(RR&& r, DD&& d) noexcept(std::is_nothrow_constructible_v<R, RR> | |||
| && std::is_nothrow_constructible_v<D, DD>) | |||
| : m_resource(std::forward<RR>(r), make_scope_exit([&r, &d] { d(r); })), | |||
| m_deleter(std::forward<DD>(d), make_scope_exit([this, &d] { d(get()); })), | |||
| : m_resource(std::forward<RR>(r), scope_exit{[&r, &d] { d(r); }}), | |||
| m_deleter(std::forward<DD>(d), scope_exit{[this, &d] { d(get()); }}), | |||
| m_execute_on_destruction(true) | |||
| { | |||
| } | |||
| unique_resource(unique_resource&& other) noexcept(std::is_nothrow_move_constructible_v<R> | |||
| && std::is_nothrow_move_constructible_v<D>) | |||
| : m_resource(detail::forward_if_nothrow_move_constructible(other.m_resource.get()), make_scope_exit([] { })), | |||
| : m_resource(detail::forward_if_nothrow_move_constructible(other.m_resource.get()), scope_exit{[] { }}), | |||
| m_deleter(detail::forward_if_nothrow_move_constructible(other.m_deleter.get()), | |||
| make_scope_exit([&other] { | |||
| scope_exit{[&other] { | |||
| other.get_deleter()(other.m_resource.get()); | |||
| other.release(); })), | |||
| other.release(); }}), | |||
| m_execute_on_destruction(std::exchange(other.m_execute_on_destruction, false)) | |||
| { | |||
| } | |||
| @@ -115,7 +115,7 @@ namespace sr | |||
| template<class RR> | |||
| void reset(RR&& r) | |||
| { | |||
| auto se = make_scope_exit([this, &r] { get_deleter()(r); }); | |||
| auto se = scope_exit{[this, &r] { get_deleter()(r); }}; | |||
| reset(); | |||
| m_resource.reset(std::forward<RR>(r)); | |||
| m_execute_on_destruction = true; | |||
| @@ -230,7 +230,7 @@ namespace sr | |||
| && std::is_nothrow_constructible_v<std::decay_t<D>, D>) | |||
| { | |||
| const bool must_release{r == invalid}; | |||
| auto ur = make_unique_resource(r, d); | |||
| auto ur = unique_resource{r, d}; | |||
| if( must_release == true ) | |||
| { | |||