| [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | ||||
| scope_exit<std::decay_t<EF>> make_scope_exit(EF&& exitFunction) | scope_exit<std::decay_t<EF>> make_scope_exit(EF&& exitFunction) | ||||
| { | { | ||||
| return scope_exit<std::decay_t<EF>>{std::forward<EF>(exitFunction)}; | |||||
| return scope_exit{std::forward<EF>(exitFunction)}; | |||||
| } | } | ||||
| } | } |
| [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | ||||
| scope_fail<std::decay_t<EF>> make_scope_fail(EF&& exitFunction) | scope_fail<std::decay_t<EF>> make_scope_fail(EF&& exitFunction) | ||||
| { | { | ||||
| return scope_fail<std::decay_t<EF>>{std::forward<EF>(exitFunction)}; | |||||
| return scope_fail{std::forward<EF>(exitFunction)}; | |||||
| } | } | ||||
| } | } |
| [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | [[deprecated("Use ctor instead. Will be removed in a future v0.2.x release")]] | ||||
| scope_success<std::decay_t<EF>> make_scope_success(EF&& exitFunction) | scope_success<std::decay_t<EF>> make_scope_success(EF&& exitFunction) | ||||
| { | { | ||||
| return scope_success<std::decay_t<EF>>{std::forward<EF>(exitFunction)}; | |||||
| return scope_success{std::forward<EF>(exitFunction)}; | |||||
| } | } | ||||
| } | } |
| noexcept(std::is_nothrow_constructible_v<std::decay_t<R>, R> | noexcept(std::is_nothrow_constructible_v<std::decay_t<R>, R> | ||||
| && std::is_nothrow_constructible_v<std::decay_t<D>, D>) | && std::is_nothrow_constructible_v<std::decay_t<D>, D>) | ||||
| { | { | ||||
| return unique_resource<std::decay_t<R>, std::decay_t<D>>{std::forward<R>(r), std::forward<D>(d)}; | |||||
| return unique_resource{std::forward<R>(r), std::forward<D>(d)}; | |||||
| } | } | ||||
| template<class R, class D> | template<class R, class D> | ||||
| unique_resource<R&, std::decay_t<D>> make_unique_resource(std::reference_wrapper<R> r, D d) | unique_resource<R&, std::decay_t<D>> make_unique_resource(std::reference_wrapper<R> r, D d) | ||||
| noexcept(std::is_nothrow_constructible_v<std::decay_t<D>, D>) | noexcept(std::is_nothrow_constructible_v<std::decay_t<D>, D>) | ||||
| { | { | ||||
| return unique_resource<R&, std::decay_t<D>>{r.get(), std::forward<D>(d)}; | |||||
| return unique_resource{r.get(), std::forward<D>(d)}; | |||||
| } | } | ||||
| template<class R, class D, class S = R> | template<class R, class D, class S = R> |