大家好,我有一个设计,使用了享元模式来共享位图,这些位图被位图对象共享,这些对象管理绘制操作,并集成在GUI库中。由于这是一个嵌入式设备,内存非常宝贵。目前,我已经使用一个轻量级类的auto_ptr std::vector实现了工作,该类计算使用情况。我知道这是一个不好的想法,可能会泄漏,所以我正在重新编写这部分内容。我考虑使用boost::shared_ptr。我的问题关键是,如果没有使用,我希望位图被释放。如果我有一个shared_ptr池,我最终只加载一次使用的位图。我考虑使用shared_ptr::use_count()来删除位图,如果use_count() == 1。但文档警告不要在生产代码中使用use_count()。基本上,这个问题是关于释放单个重对象的享元模式。你认为有更好的方法吗?