58 #ifndef STLPLUS_SMART_PTR
59 #define STLPLUS_SMART_PTR
103 template<
typename T,
typename C,
typename COUNTER>
143 operator bool(
void)
const;
146 bool null(
void)
const;
153 const T& operator*(
void) const throw(null_dereference);
156 T* operator->(
void) throw(null_dereference);
157 const T* operator->(
void) const throw(null_dereference);
165 T&
value(
void) throw(null_dereference);
166 const T&
value(
void) const throw(null_dereference);
172 void set(T* data = 0);
193 inline
void clear(
void);
229 template <typename T>
233 T* operator() (
const T& from)
throw()
241 template <
typename T>
245 T* operator() (
const T& from)
throw()
253 template <
typename T>
257 T* operator() (
const T& from)
throw(illegal_copy)
259 throw illegal_copy(
"no_copy functor called");
267 template <
typename T,
typename COUNTER = mrpt::synch::CAtomicCounter>
282 template <
typename T,
typename COUNTER = mrpt::synch::CAtomicCounter>
297 template <
typename T,
typename COUNTER = mrpt::synch::CAtomicCounter>