
2 Dec
2006
2 Dec
'06
12:33 a.m.
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 -Howard