13 #if __cplusplus<201103L    14 #  error c++11 required    27 #define HAVE_SHOW_REFS    46     ptr_base(
const track_t& track) :track(track) {}
    53     typedef std::set<const shared_ptr_base *> 
ref_set_t;
    54     void show_refs(std::ostream&, 
bool self=
true, 
bool weak=
false) 
const;
    55     void spy_refs(ref_set_t&) 
const;
    67 #ifndef EXCEPT_USE_NONE    68         :m_stack(), m_depth(0)
    73       ,m_stack(), m_depth(0)
    81     void track_new(
void* ptr);
    88 #ifndef EXCEPT_USE_NONE    94     void show_stack(std::ostream&) 
const;
   106 template<
typename Store, 
typename Actual>
   118     typedef ::std::shared_ptr<T> real_type;
   144     template<
typename A, 
class ... Args>
   176     void reset() noexcept { real.reset(); track_clear(); }
   177     template<
typename A, 
class ... Args>
   180         real.reset(a, args...);
   194     T* 
get() 
const noexcept { 
return real.get(); }
   197     long use_count() const noexcept { 
return real.use_count(); }
   198     bool unique() const noexcept { 
return real.unique(); }
   199     explicit operator bool() const noexcept { 
return bool(real); }
   203     bool operator<(const shared_ptr<T>& o) 
const { 
return real<o.real; }
   210     template<
typename TO, 
typename FROM>
   213     template<
typename TO, 
typename FROM>
   216     template<
typename TO, 
typename FROM>
   219     template<
typename Store, 
typename Actual>
   226 template<
typename TO, 
typename FROM>
   231 template<
typename TO, 
typename FROM>
   236 template<
typename TO, 
typename FROM>
   243     typedef ::std::weak_ptr<T> real_type;
   285     void reset() noexcept { track.reset(); real.reset(); }
   287     long use_count() const noexcept { 
return real.use_count(); }
   288     bool unique() const noexcept { 
return real.unique(); }
   295     template<
typename Store, 
typename Actual>
   307 template<
typename Store, 
typename Actual>
   315         throw std::logic_error(
"epics::debug::enabled_shared_from_this fails");
   316     self->xxInternalSelf = actual;
   322 inline std::ostream& operator<<(std::ostream& strm, const epics::debug::shared_ptr<T>& ptr)
 
void swap(shared_ptr_base &o)
 
shared_ptr< TO > static_pointer_cast(const shared_ptr< FROM > &src)
 
shared_ptr_base(const track_t &track)
 
bool operator!=(const shared_ptr< T > &o) const 
 
shared_ptr(std::unique_ptr< A > &&a)
 
void swap(shared_ptr &o) noexcept
 
pvd::StructureConstPtr type
 
shared_ptr< T > lock() const noexcept
 
TODO only here because of the Lockable. 
 
real_type::element_type element_type
 
Mark external symbols and entry points for shared libraries. 
 
shared_ptr & operator=(const shared_ptr &o)
 
void reset(A *a, Args...args)
 
void do_enable_shared_from_this(const shared_ptr< Store > &dest, enable_shared_from_this< Actual > *self)
 
shared_ptr(const shared_ptr &o)
 
bool unique() const noexcept
 
long use_count() const noexcept
 
shared_ptr(A *a, Args...args)
 
shared_ptr(const shared_ptr< A > &o)
 
bool owner_before(const shared_ptr< A > &o)
 
bool unique() const noexcept
 
shared_ptr< TO > dynamic_pointer_cast(const shared_ptr< FROM > &src)
 
bool owner_before(const weak_ptr< A > &o)
 
long use_count() const noexcept
 
std::set< const shared_ptr_base * > ref_set_t
 
weak_ptr(const weak_ptr< A > &o)
 
ptr_base(const track_t &track)
 
bool operator==(const shared_ptr< T > &o) const 
 
weak_ptr & operator=(const shared_ptr< A > &o)
 
std::shared_ptr< tracker > track_t
 
shared_ptr(const weak_ptr< A > &o)
 
real_type::element_type element_type
 
shared_ptr< TO > const_pointer_cast(const shared_ptr< FROM > &src)
 
weak_ptr(const weak_ptr &o)
 
shared_ptr< Base > shared_from_this() const 
 
shared_ptr & operator=(const shared_ptr< A > &o)
 
std::add_lvalue_reference< T >::type operator*() const noexcept
 
shared_ptr_base() noexcept
 
weak_ptr_base(const track_t &track)
 
weak_ptr & operator=(const weak_ptr &o)
 
T * operator->() const noexcept
 
weak_ptr(const shared_ptr< A > &o)