|
libhatchet
|
#include <hxptr.hpp>
Public Types | |
| using | element_t = T |
Public Member Functions | |
| constexpr | hxptr (T *ptr_=0, deleter_t_ deleter_=deleter_t_()) noexcept |
| constexpr | hxptr (hxptr &&other_) noexcept |
| constexpr | ~hxptr (void) noexcept |
| constexpr hxptr & | operator= (hxptr &&other_) noexcept |
| constexpr T & | operator* (void) const |
| constexpr T * | operator-> (void) const |
| constexpr | operator bool (void) const |
| constexpr bool | operator== (const hxptr &other_) const |
| constexpr bool | operator== (hxnullptr_t) const |
| template<typename function_t_> | |
| constexpr auto | and_then (function_t_ &&callable_) const -> hxremove_cvref_t< decltype(hxforward< function_t_ >(callable_)(hxdeclval< T & >()))> |
| constexpr const deleter_t_ & | deleter (void) const |
| constexpr deleter_t_ & | deleter (void) |
| constexpr T * | get (void) const |
| template<typename function_t_> | |
| constexpr hxptr | or_else (function_t_ &&callable_) && |
| template<typename function_t_> | |
| hxptr | or_else (function_t_ &&callable_) const &=delete |
| constexpr T * | release (void) |
| constexpr void | reset (T *ptr_=0) noexcept |
| constexpr void | swap (hxptr &other_) noexcept |
| template<typename U_ = hxremove_cv_t<T>> | |
| constexpr hxremove_cv_t< T > | value_or (U_ &&default_value_) const |
hxptr<T, deleter_t> - A unique owning pointer.
Owns a single dynamically allocated object of type T and invokes deleter_t on destruction or reset. Only one hxptr may own a given object at a time. Move construction and move assignment transfer ownership. Copy construction and copy assignment are deleted.
| using hxptr< T, deleter_t_ >::element_t = T |
element_t - Publishes the pointed-to type.
|
explicitconstexprnoexcept |
|
constexprnoexcept |
Move constructor.
Transfers ownership from other to this. other is left null.
|
constexprnoexcept |
Destroys the owned object using deleter_t if non-null.
|
constexpr |
|
constexpr |
Returns a reference to the stored deleter.
|
constexpr |
Returns a const reference to the stored deleter.
|
inlineconstexpr |
Returns the owned pointer without releasing ownership.
|
constexpr |
Returns true if the owned pointer is non-null.
|
constexpr |
Returns a reference to the owned object. The pointer must not be null.
|
constexpr |
Returns the owned pointer. The pointer must not be null.
|
constexprnoexcept |
Move assignment.
Destroys the currently owned object, then transfers ownership from other. other is left null. Self-assignment is not supported.
|
constexpr |
Returns true if this and other point to the same object.
|
constexpr |
Returns true if the owned pointer is null.
|
delete |
|
constexpr |
Releases ownership and returns the previously owned pointer without invoking the deleter.
The caller takes responsibility for freeing it.
|
constexprnoexcept |
Destroys the currently owned object using deleter_t if non-null, then takes ownership of ptr.
|
constexpr |
Returns the owned value if non-null, otherwise returns default_value forwarded and converted to T.