I'm using boost::shared_ptr to store a pointer to texture. I'm loading new textures as i need and share them among the program using shared_ptr. If my app is using too much memory i want to remove unused textures to clear memory. Is there a way I can deter开发者_如何转开发mine how many objects are having access to the texture via shared_ptr ?
If it's unused then the shared_ptr
will free it automatically. That's the point of shared_ptr
. If you are holding a shared_ptr
to a texture without actually using it, then you're violating the contract of shared_ptr
and should not be using it.
You can use shared_ptr::use_count()
, but read the documentation before doing so!
There is use_count()
, however note that as the documentation says, it's not necessarily too efficient.
The shared_ptr
class has member functions use_count()
and unique()
to give you access to its usage count.
It's a different question how that information will be useful to you, though.
精彩评论