header_utils
Loading...
Searching...
No Matches
ghassanpl::unique_resource< R, D > Struct Template Reference

An equivalent to unique_ptr for values that are not heap pointers. More...

#include <scope.h>

Public Member Functions

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ unique_resource() [1/3]

template<class R, class D>
template<class RR, class DD>
ghassanpl::unique_resource< R, D >::unique_resource ( RR && r,
DD && d )
inlinenoexcept

Definition at line 128 of file scope.h.

◆ unique_resource() [2/3]

template<class R, class D>
template<class RR, class DD, class I = std::decay_t<RR>>
ghassanpl::unique_resource< R, D >::unique_resource ( RR && r,
const I & invalid,
DD && d )
inlinenoexcept

Definition at line 136 of file scope.h.

◆ unique_resource() [3/3]

template<class R, class D>
ghassanpl::unique_resource< R, D >::unique_resource ( unique_resource< R, D > && rhs)
inlinenoexcept

Definition at line 143 of file scope.h.

◆ ~unique_resource()

template<class R, class D>
ghassanpl::unique_resource< R, D >::~unique_resource ( )
inlinenoexcept

Definition at line 150 of file scope.h.

Member Function Documentation

◆ get()

template<class R, class D>
const R & ghassanpl::unique_resource< R, D >::get ( ) const
inlinenoexcept

Definition at line 228 of file scope.h.

◆ get_deleter()

template<class R, class D>
const D & ghassanpl::unique_resource< R, D >::get_deleter ( ) const
inlinenoexcept

Definition at line 246 of file scope.h.

◆ operator R&()

template<class R, class D>
ghassanpl::unique_resource< R, D >::operator R& ( )
inlineexplicitnoexcept

Definition at line 232 of file scope.h.

◆ operator*()

template<class R, class D>
auto ghassanpl::unique_resource< R, D >::operator* ( ) const
inlinenoexcept

Definition at line 234 of file scope.h.

◆ operator->()

template<class R, class D>
R ghassanpl::unique_resource< R, D >::operator-> ( ) const
inlinenoexcept

Definition at line 240 of file scope.h.

◆ operator=()

template<class R, class D>
unique_resource & ghassanpl::unique_resource< R, D >::operator= ( unique_resource< R, D > && rhs)
inlinenoexcept

Definition at line 156 of file scope.h.

◆ release()

template<class R, class D>
void ghassanpl::unique_resource< R, D >::release ( )
inlinenoexcept

Definition at line 223 of file scope.h.

◆ reset() [1/2]

template<class R, class D>
void ghassanpl::unique_resource< R, D >::reset ( )
inlinenoexcept

Definition at line 192 of file scope.h.

◆ reset() [2/2]

template<class R, class D>
template<class RR>
void ghassanpl::unique_resource< R, D >::reset ( RR && r)
inlinenoexcept

Definition at line 202 of file scope.h.