Opened 12 years ago

Last modified 5 years ago

#810 new Feature Requests (None)

support for weak_ptr binding

Reported by: nobody Owned by: Peter Dimov
Milestone: To Be Determined Component: smart_ptr
Version: None Severity: Optimization
Keywords: Cc: jwakely.boost@…

Description (last modified by Peter Dimov)


recently i faced with problem - i was not able to pass weak_ptr to bind() function. I started to study why and found there is no support for this in boost.

As result, me and my friend wrote "get_pointer" version
which accepts weak_ptr. 

At actual call moment, implementation uses weak_ptr::lock() to get shared_ptr. If retrieved shared_ptr is invalid, then exception of type "disposed_exception" thrown.

This code was tested on Windows XP SP2 with following compilers: VC6, VC7, VC7.1, VC8, g++ 3.2.3 (MinGW), g++ 3.4.4 (Cygwin).

If you find this code is useful for someone else me, please add to boost (it's actually not a library, this is why i'm poosting it to "patches"). You can find sources + test app in attachment.

Thank you,
Dmytro Gokun

Attachments (1) (2.2 KB) - added by Peter Dimov 12 years ago.

Download all attachments as: .zip

Change History (7)

comment:1 Changed 12 years ago by btmore@…

Are there any plans to add this type of functionality?

This would be very useful in my current project, but I'd rather stick with upstream instead of patching boost locally.

Changed 12 years ago by Peter Dimov

Attachment: added

comment:2 Changed 12 years ago by Peter Dimov

Milestone: To Be Determined
Severity: Optimization
Type: PatchesFeature Requests

Moved to Feature Requests, restored attachment.

comment:3 Changed 11 years ago by andy@…

For what it's worth, I second the request for this functionality. I was thinking about attempting to write a version myself for submission when I stumbled across this trac entry. I think that this form of bind would be extremely useful. I can't think of a nicer generic way to break a shared_ptr dependency while still maintaining decoupling using boost bind and function.

comment:4 Changed 10 years ago by Jonathan Wakely <jwakely.boost@…>

Cc: jwakely.boost@… added

comment:5 Changed 8 years ago by joseph.j.mudnackal@…

is this feature gonna be added anytime soon?

comment:6 Changed 5 years ago by Peter Dimov

Description: modified (diff)
Status: assignednew
Note: See TracTickets for help on using tickets.