我正在使用boost :: shared_ptr来存储指向纹理的指针。我正在加载我需要的新纹理,并使用shared_ptr在程序中共享它们。如果我的应用程序使用太多内存我想删除未使用的纹理以清除内存。有没有办法可以通过shared_ptr确定有多少对象可以访问纹理?
答案 0 :(得分:6)
如果未使用,则shared_ptr
会自动释放它。这就是shared_ptr
的要点。如果您在没有实际使用纹理的情况下持有shared_ptr
纹理,那么您违反了shared_ptr
的合同,并且不应该使用它。
答案 1 :(得分:2)
您可以使用shared_ptr::use_count()
,但请先阅读文档!
答案 2 :(得分:1)
有use_count()
,但请注意,正如文档所说,它不一定太有效。
答案 3 :(得分:1)
shared_ptr
类具有成员函数use_count()
和unique()
,可让您访问其使用计数。
但这个信息对你有用的问题却是一个不同的问题。