Hi all,

I am trying to use shared_ptr in my code, but, I encoutered some problems. Here is a piece of my code :

The main :

boost::shared_ptr<OGRRectangle> rect( new OGRRectangle(5.,TPoint2D <double>(50.,20.),0.1325) );
boost::shared_ptr< rectangle_with_profile<OGRRectangle> > r( new rectangle_with_profile<OGRRectangle> ( rect , 5 , 12 , 1.5 , EXTREME) );

The rectangle_with_profile<T> constructor :

template <class Rect_class> rectangle_with_profile<Rect_class>::rectangle_with_profile( boost::shared_ptr<Rect_class> rect , const unsigned int &nb_profiles , const unsigned int &nb_points , const double &distance , const eProfilePosition &position=CENTER )
{
    m_rectangle = rect;
   // ...
   // ...
}

Just after the line
boost::shared_ptr< rectangle_with_profile<OGRRectangle> > r( new rectangle_with_profile<OGRRectangle> ( rect , 5 , 12 , 1.5 , EXTREME) );
the rect<T> destructor is called, and the m_rectangle in rectangle_with_profile handles a deleted pointer ...

What am I missing ?

Thanks in advance for your help.

--
Le temps des cerises reviendra. Dans l'immédiat, c'est le temps des noyaux. Courage.