Pottu
Public Member Functions | Public Attributes | Friends | List of all members
pottu::SharedResourceHandle< R, Deleter > Class Template Reference

Handle for a resource derived from SharedResource. More...

#include <memory.hpp>

Public Member Functions

 SharedResourceHandle (R *p, Deleter deleter=Deleter{})
 
 SharedResourceHandle (const SharedResourceHandle &o)
 
 SharedResourceHandle (SharedResourceHandle &&o)
 
SharedResourceHandleoperator= (SharedResourceHandle o) noexcept
 
SharedResourceHandleoperator= (SharedResourceHandle &&o) noexcept
 
 operator bool () const noexcept
 
R & operator* () const noexcept
 
R * operator-> () const noexcept
 
R * get () const noexcept
 

Public Attributes

R * _p
 
Deleter _deleter
 

Friends

void swap (SharedResourceHandle &h1, SharedResourceHandle &h2) noexcept
 

Detailed Description

template<class R, class Deleter = std::default_delete<R>>
class pottu::SharedResourceHandle< R, Deleter >

Handle for a resource derived from SharedResource.

Template parameter R is the resource and Deleter is a functor to be called (operator()) when the resource is not used any more.

Deleter must have the default constructor defined. However, the operator(), should be defined to do something sensible also in the case when the deleter is created with the default constructor.


The documentation for this class was generated from the following file: