id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 5690,intrusive_ptr detach method,nn-mail@…,Peter Dimov,"It is very handy. In some cases like passing between threads or between functions. (e.g. Boost.ASIO needs this too) Instead of writing this code: {{{ #!cpp intrusive_ptr a(get_a()); intrusive_add_ref(a.get()); call(a.get()); }}} One could write {{{ #!cpp intrusive_ptr a(get_a()); call(a.detach()); }}} The good thing in the second variation that we don't increase counter, so no 'lock' opcode to the processor. Better performance. Patch: {{{ #!cpp void* detach() { T * tmp = px; px = 0; return tmp; } }}} Thanx.",Patches,closed,To Be Determined,smart_ptr,Boost 1.47.0,Optimization,fixed,intrusive_ptr,