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_resourceoperator= (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
 
auto operator* () const noexcept
 
operator-> () const noexcept
 
const Dget_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 118 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 123 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 131 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 138 of file scope.h.

◆ ~unique_resource()

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

Definition at line 145 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 223 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 240 of file scope.h.

◆ operator*()

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

Definition at line 228 of file scope.h.

◆ operator->()

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

Definition at line 234 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 151 of file scope.h.

◆ release()

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

Definition at line 218 of file scope.h.

◆ reset() [1/2]

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

Definition at line 187 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 197 of file scope.h.