Boost logo

Boost Users :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2007-03-22 19:30:46


Stephen Torri wrote:

> I am attempting to hunt down why I am getting a segmentation fault
> from the boost::shared_ptr class.

You could try #defining BOOST_SP_ENABLE_DEBUG_HOOKS and adding
libs/smart_ptr/src/sp_debug_hooks.cpp to your project, which is a simple
checker that tries to catch common problems.

You might also wish to verify that you aren't mixing single-threaded and
multithreaded code or libraries in the same program.

> I know that it has to do with how I
> am managing my shared pointers. That is creating and using them in
> functions. I am reading the best practices web page and I have a
> question about the best way to initialize a shared_ptr.
>
> Normally I have a class like the following:
>
> class A {
> public:
>
> typedef boost::shared_ptr<A> ptr_t;
>
> A ( int input_value )
> : value ( input_value )
> {}
>
> private:
> int value;
> };
>
> Which I will use in another place:
>
> class A_User {
> public:
>
> A_User ()
> : m_a_ptr ( new A() )
> {}
>
> private:
>
> A::ptr_t m_a_ptr;
> };
>
> Is this the correct way to initialize the A::ptr_t held in the A_User
> class in its constructor?

Yes, this is correct.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net