|
Boost : |
From: Sohail Somani (s.somani_at_[hidden])
Date: 2006-12-01 19:37:55
> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Howard Hinnant
> Sent: Friday, December 01, 2006 4:34 PM
> To: boost_at_[hidden]
> Subject: Re: [boost] FW: Suggestion for boost`s smart pointers
>
> On Dec 1, 2006, at 5:00 PM, Sohail Somani wrote:
>
> > Most C libraries have make_X/free_X pairs. So a typical C call could
> > look like:
> >
> > ...
> > struct T * c = make_T(args);
> > do_stuff_with_a_T(c);
> > free_T(c);
> > ...
> >
> > Which I would like to replace with:
> >
> > ...
> > typedef some_ptr<T,Deleter<free_T> > T_ptr;
> > T_ptr c(make_T(args));
> > do_stuff_with_a_T(c.get());
> > ...
>
> Does this work for you?
>
> typedef unique_ptr<T, void (*)(void*)> T_ptr;
> int args;
> T_ptr c(make_T(args), std::free); // assumes make_T uses
> std::malloc
> do_stuff_with_a_T(c.get());
>
> http://home.twcny.rr.com/hinnant/cpp_extensions/unique_ptr_03.html
I wouldn't really need the extra indirection that seems to be implied
there but that's a step in the right direction.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk