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