What's the performance penalty of weak_ptr?

Posted by Kornel Kisielewicz on Stack Overflow See other posts from Stack Overflow or by Kornel Kisielewicz
Published on 2010-04-30T22:40:08Z Indexed on 2010/04/30 22:47 UTC
Read the original article Hit count: 240

Filed under:
|
|
|

I'm currently designing a object structure for a game, and the most natural organization in my case became a tree. Being a great fan of smart pointers I use shared_ptr's exclusively. However, in this case, the children in the tree will need access to it's parent (example -- beings on map need to be able to access map data -- ergo the data of their parents.

The direction of owning is of course that a map owns it's beings, so holds shared pointers to them. To access the map data from within a being we however need a pointer to the parent -- the smart pointer way is to use a reference, ergo a weak_ptr.

However, I once read that locking a weak_ptr is a expensive operation -- maybe that's not true anymore -- but considering that the weak_ptr will be locked very often, I'm concerned that this design is doomed with poor performance.

Hence the question:

What is the performance penalty of locking a weak_ptr? How significant is it?

© Stack Overflow or respective owner

Related posts about c++

Related posts about boost