20 template<
typename T,
typename... Args>
122 if (
_c->_use_count() == 0)
130 if (
_c->_can_delete())
192 if (
_c->_can_delete())
212 if (
_c->_can_delete())
231 if (
_c->_can_delete())
250 if (
_c->_can_delete())
267 if (
_c->_can_delete())
276 return _c->_use_count();
284 if (
_c->_can_delete())
295 if (
_c->_can_delete())
324 std::swap(lhs.
_c, rhs.
_c);
329 return lhs.
_c == rhs.
_c && *lhs.
_c == *rhs.
_c;
334 return lhs.
_c ==
nullptr;
339 return _c !=
nullptr;
346 template<
typename T,
typename... Args>
element_type & operator*() const
shared_ptr(shared_ptr &&r) noexcept
shared_ptr & operator=(const shared_ptr &r) noexcept
__shared_ptr_core< T > * _c
shared_ptr(shared_ptr< Y > &&other)
shared_ptr(__shared_ptr_core< T > *cb)
friend bool operator==(const shared_ptr &lhs, const shared_ptr &rhs)
shared_ptr & operator=(shared_ptr< Y > &&r) noexcept
shared_ptr(shared_ptr< Y > &other)
friend bool operator==(const shared_ptr &lhs, std::nullptr_t)
shared_ptr & operator=(shared_ptr &&r) noexcept
element_type * get() const
friend void swap(shared_ptr &lhs, shared_ptr &rhs)
constexpr shared_ptr() noexcept
shared_ptr(const shared_ptr &r) noexcept
constexpr shared_ptr(std::nullptr_t) noexcept
std::remove_extent_t< T > element_type
element_type * operator->() const
shared_ptr & operator=(const shared_ptr< Y > &r) noexcept
weak_ptr(weak_ptr &&r) noexcept
__shared_ptr_core< T > * _c
friend class shared_ptr< T >
weak_ptr(const shared_ptr< Y > &r) noexcept
weak_ptr(const weak_ptr &r) noexcept
constexpr weak_ptr(std::nullptr_t)
weak_ptr(const weak_ptr< Y > &r) noexcept
std::remove_extent_t< T > element_type
weak_ptr(weak_ptr< Y > &&r) noexcept
T * create(Args &&...args)
shared_ptr< T > make_shared(Args &&...args)
PtrResult(const mos::shared_ptr< T > &value)
PtrResult(const mos::shared_ptr< T > &&value)
mos::shared_ptr< T > get() const
const mos::shared_ptr< T > value
__shared_ptr_core(T *ptr, size_t own, size_t weak)
size_t _weak_count() const
friend bool operator==(const __shared_ptr_core &lhs, const __shared_ptr_core &rhs)
size_t _use_count() const