【发布时间】:2011-09-21 12:36:56
【问题描述】:
我正在使用 boost::shared_ptr 来存储指向纹理的指针。我正在根据需要加载新纹理并使用 shared_ptr 在程序之间共享它们。如果我的应用程序使用了太多内存,我想删除未使用的纹理以清除内存。有没有办法可以确定有多少对象可以通过 shared_ptr 访问纹理?
【问题讨论】:
标签: c++ boost shared-ptr
我正在使用 boost::shared_ptr 来存储指向纹理的指针。我正在根据需要加载新纹理并使用 shared_ptr 在程序之间共享它们。如果我的应用程序使用了太多内存,我想删除未使用的纹理以清除内存。有没有办法可以确定有多少对象可以通过 shared_ptr 访问纹理?
【问题讨论】:
标签: c++ boost shared-ptr
如果它未被使用,那么shared_ptr 将自动释放它。这就是shared_ptr 的意义所在。如果您将 shared_ptr 保存在纹理上而没有实际使用它,那么您就违反了 shared_ptr 的合同并且不应该使用它。
【讨论】:
shared_ptr 处理它会更容易。
您可以使用shared_ptr::use_count(),但在使用之前请阅读文档!
【讨论】:
有use_count(),但请注意,正如文档所说,它不一定太高效。
【讨论】:
shared_ptr 类具有成员函数 use_count() 和 unique(),可让您访问其使用次数。
不过,这些信息对您有什么用处是另一个问题。
【讨论】: