| }; | }; | ||||
| template <class EF> | |||||
| scope_exit(EF &&ef) -> scope_exit<std::decay_t<EF>>; | |||||
| template<class EF> | |||||
| scope_exit(EF&& ef) -> scope_exit<std::decay_t<EF>>; | |||||
| template<class EF> | template<class EF> |
| }; | }; | ||||
| template <class EF> | |||||
| scope_fail(EF &&ef) -> scope_fail<std::decay_t<EF>>; | |||||
| template<class EF> | |||||
| scope_fail(EF&& ef) -> scope_fail<std::decay_t<EF>>; | |||||
| template<class EF> | template<class EF> |
| }; | }; | ||||
| template <class EF> | |||||
| scope_success(EF &&ef) -> scope_success<std::decay_t<EF>>; | |||||
| template<class EF> | |||||
| scope_success(EF&& ef) -> scope_success<std::decay_t<EF>>; | |||||
| template<class EF> | template<class EF> |
| template<class R, class D> | template<class R, class D> | ||||
| unique_resource(R&& r, D&& d) -> unique_resource<std::decay_t<R>, std::decay_t<D>>; | unique_resource(R&& r, D&& d) -> unique_resource<std::decay_t<R>, std::decay_t<D>>; | ||||
| template<typename R, typename D> | |||||
| template<class R, class D> | |||||
| unique_resource(std::reference_wrapper<R> r, D&& d) -> unique_resource<R&, std::decay_t<D>>; | unique_resource(std::reference_wrapper<R> r, D&& d) -> unique_resource<R&, std::decay_t<D>>; | ||||