Boost logo

Boost Users :

Subject: Re: [Boost-users] boost shared_ptr with own dtor
From: Andrew Holden (andrewholden1_at_[hidden])
Date: 2012-12-08 11:45:07


Philipp Kraus <philipp.kraus_at_[hidden]> wrote:

>Hello,
>
>I'm using boost::shared_ptr for using a C pointer. The ctor and all
>functions are called without any problem, but I have got a problem with
>the dtor.
>I need to call a C function on the dtor eg
>
>cptr_close( mypointer )
>
>How can I this used with boost::shared_ptr? I need the cptr_close call
>on the pointer member of the dtor on the shared_ptr.
>
>Thanks a lot
>
>Phil
>
>
>_______________________________________________
>Boost-users mailing list
>Boost-users_at_[hidden]
>http://lists.boost.org/mailman/listinfo.cgi/boost-users

I would initialize the shared pointer like so:

boost::shared_ptr <MyType> ptr;

MyType *temp_ptr = cptr_open(); //Use a temporary pointer to avoid initializing the shared pointer with null.

if (temp_ptr)
    ptr.reset(temp_ptr, &cptr_close);
//Now discard temp_ptr



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