Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- boost::shared_ptr<T> ptr( new T, std::mem_fun_ref(&T::deleteMe) );
- boost::shared_ptr<S> ptr( new S, std::ptr_fun(lib_freeXYZ) );
- void Deleter( T* ptr);
- boost::shared_ptr<T> ptrToT( new T, Deleter );
- void Deleter( T* ptr);
- {
- ptr->deleteMe();
- // And make sure YOU ACTUALLY DELETE (or do whatever else you need to
- // do to release the resource)
- delete ptr;
- }
- void intrusive_ptr_add_ref(foo *f) {
- lib_add_ref(f);
- }
- void intrusive_ptr_release(foo *f) {
- if(lib_dec_ref(f) == 0)
- lib_free(f);
- }
- intrusive_ptr<foo> f(lib_alloc());
- // can wrap raw pointers too, which already may be referenced somewhere else
- foo *p = get_foo_from_somewhere();
- function_taking_intrusive_ptr(p);
Add Comment
Please, Sign In to add comment