Thanks for all the response.
I reformatted my question to understand the state of the member pointer after the containg class constructor throws an exception
Again my example class :)
class Foo
{
public:
    Foo()
    {
       int error = 0;
        p = new Fred;
        throw error;  // Force throw , trying to understand what will happen to p
    }
   ~Foo()
    {
       if (p)
       {
           delete p;
           p = 0;
       }
     }
private:
   Fred* p;
};
int main()
{
      try
      {
         Foo* lptr = new Foo;
      }
      catch (...)
      {}
}
The consturctor for class foo would throw an exception for some random reason. I understand that the desturctor of foo will never be called but in this case will the destructor for p get called?
what difference it makes to have p as a boost smart pointer than a raw pointer to fred.
Thanks.
 
     
     
     
     
     
    