An equivalent to unique_ptr for values that are not heap pointers.
More...
#include <scope.h>
|
| template<class RR, class DD> |
| | unique_resource (RR &&r, DD &&d) noexcept(std::is_nothrow_constructible_v< R1, RR > &&std::is_nothrow_constructible_v< D, DD >) |
| template<class RR, class DD, class I = std::decay_t<RR>> |
| | unique_resource (RR &&r, const I &invalid, DD &&d) noexcept(std::is_nothrow_constructible_v< R1, RR > &&std::is_nothrow_constructible_v< D, DD >) |
| | unique_resource (unique_resource &&rhs) noexcept(std::is_nothrow_move_constructible_v< R1 > &&std::is_nothrow_move_constructible_v< D >) |
| unique_resource & | operator= (unique_resource &&rhs) noexcept(std::is_nothrow_move_assignable_v< R1 > &&std::is_nothrow_move_assignable_v< D > &&noexcept(deleter(resource))) |
| void | reset () noexcept(noexcept(deleter(resource))) |
| template<class RR> |
| void | reset (RR &&r) noexcept(noexcept(deleter(resource)) &&std::is_nothrow_assignable_v< R1 &, RR >) |
| void | release () noexcept |
| const R & | get () const noexcept |
| | operator R& () noexcept |
| auto | operator* () const noexcept GHPL_REQUIRES(std |
| R | operator-> () const noexcept GHPL_REQUIRES(std |
| const D & | get_deleter () const noexcept |
template<class R, class D>
struct ghassanpl::unique_resource< R, D >
An equivalent to unique_ptr for values that are not heap pointers.
Not exception-safe. https://github.com/PeterSommerlad/scope17/blob/main/scope.hpp
Definition at line 123 of file scope.h.
◆ unique_resource() [1/3]
template<class R, class D>
template<class RR, class DD>
◆ unique_resource() [2/3]
template<class R, class D>
template<class RR, class DD, class I = std::decay_t<RR>>
◆ unique_resource() [3/3]
template<class R, class D>
◆ ~unique_resource()
template<class R, class D>
◆ get()
template<class R, class D>
◆ get_deleter()
template<class R, class D>
◆ operator R&()
template<class R, class D>
◆ operator*()
template<class R, class D>
◆ operator->()
template<class R, class D>
◆ operator=()
template<class R, class D>
◆ release()
template<class R, class D>
◆ reset() [1/2]
template<class R, class D>
◆ reset() [2/2]
template<class R, class D>
template<class RR>