2 * @file SmartPointer.icc
3 * @brief Implementation of inline functions from \b class SmartPointer
10 SmartPointer<T>::SmartPointer() {
14 SmartPointer<T>::SmartPointer( const SmartPointer<T> &rhs ):
19 SmartPointer<T>::SmartPointer( const shared_ptr<T> &rhs ):
21 if(m_data) m_data->m_this = m_data;
25 SmartPointer<T>::SmartPointer( T *raw_pointer ) {
27 if(raw_pointer->m_this.expired()) {
28 m_data.reset(raw_pointer);
29 m_data->m_this = m_data;
31 else m_data = raw_pointer->m_this.lock();