30 #ifndef _libDEM_SmartPtr_hpp_
31 #define _libDEM_SmartPtr_hpp_
43 template<
typename type>
class SmartPtr;
45 template<
typename type>
60 template<
typename type>
81 template<
typename type>
86 template<
typename type>
88 for (
auto pt: allPtr_)
92 template<
typename type>
99 template<
typename type>
106 template<
typename type>
111 template<
typename type>
117 template<
typename type>
120 if (pt.
ptr_ !=
nullptr)
124 template<
typename type>
131 template<
typename type>
138 template<
typename type>
141 if (ptr_ !=
nullptr) {
#define SafeModeAssert(condition, message)
Definition: Macro.hpp:47
Definition: SmartPtr.hpp:47
std::set< SmartPtr< type > * > allPtr_
Definition: SmartPtr.hpp:56
void add_ptr(SmartPtr< type > *)
Definition: SmartPtr.hpp:94
SmartPtrClass()
Definition: SmartPtr.hpp:82
virtual ~SmartPtrClass()
Definition: SmartPtr.hpp:87
void erase_ptr(SmartPtr< type > *)
Definition: SmartPtr.hpp:101
Definition: SmartPtr.hpp:62
SmartPtr()
Definition: SmartPtr.hpp:107
SmartPtr< type > & operator=(const SmartPtr< type > &)=delete
SmartPtr(const SmartPtr< type > &)
Definition: SmartPtr.hpp:118
void delete_ptr()
Definition: SmartPtr.hpp:140
void attach_ptr(type *)
Definition: SmartPtr.hpp:133
type * ptr_
Definition: SmartPtr.hpp:77
SmartPtr(type *)
Definition: SmartPtr.hpp:112
~SmartPtr()
Definition: SmartPtr.hpp:125
Definition: Common.hpp:198