memory¶
The contents of this module can be included with the header
hpx/modules/memory.hpp. These headers may be used by user-code but are not
guaranteed stable (neither header location nor contents). You are using these at
your own risk. If you wish to use non-public functionality from a module we
strongly suggest only including the module header hpx/modules/memory.hpp, not
the particular header in which the functionality you would like to use is
defined. See Public API for a list of names that are part of the public
HPX API.
-
namespace
hpx -
namespace
memory¶ Functions
-
template<typename
T, typenameU>
booloperator==(intrusive_ptr<T> const &a, intrusive_ptr<U> const &b)¶
-
template<typename
T>
classintrusive_ptr¶ Public Types
-
template<>
usingelement_type= T¶
Public Functions
-
constexpr
intrusive_ptr()¶
-
intrusive_ptr(T *p, bool add_ref = true)¶
-
template<typename
U, typenameEnable= typename std::enable_if<memory::detail::sp_convertible<U, T>::value>::type>intrusive_ptr(intrusive_ptr<U> const &rhs)¶
-
intrusive_ptr(intrusive_ptr const &rhs)¶
-
~intrusive_ptr()¶
-
constexpr
intrusive_ptr(intrusive_ptr &&rhs)¶
-
intrusive_ptr &
operator=(intrusive_ptr &&rhs)¶
-
template<typename
U, typenameEnable= typename std::enable_if<memory::detail::sp_convertible<U, T>::value>::type>
constexprintrusive_ptr(intrusive_ptr<U> &&rhs)¶
-
intrusive_ptr &
operator=(intrusive_ptr const &rhs)¶
-
intrusive_ptr &
operator=(T *rhs)¶
-
void
reset()¶
-
void
reset(T *rhs)¶
-
void
reset(T *rhs, bool add_ref)¶
-
constexpr T *
get() const¶
-
constexpr T *
detach()¶
-
T &
operator*() const¶
-
T *
operator->() const¶
-
constexpr
operator bool() const¶
-
constexpr void
swap(intrusive_ptr &rhs)¶
Private Types
-
template<>
usingthis_type= intrusive_ptr¶
Private Members
-
T *
px= nullptr¶
Friends
-
friend
hpx::memory::intrusive_ptr
-
template<>
-
template<typename
-
namespace
-
namespace
std
-
namespace
hpx -
namespace
serialization Functions
-
template<typename
T>
voidload(input_archive &ar, hpx::intrusive_ptr<T> &ptr, unsigned)¶
-
template<typename
T>
voidsave(output_archive &ar, hpx::intrusive_ptr<T> const &ptr, unsigned)¶
-
hpx::serialization::HPX_SERIALIZATION_SPLIT_FREE_TEMPLATE((template< typename T >), ( hpx::intrusive_ptr < T >))
-
template<typename
-
namespace