在一个项目中的类,我有两种类:一种是如何区分分配使用一个内存池
- 类型:我
std::unique_ptr<>
- B类管理通常分配类:类,它们的新已覆盖从boost memory pool
分配内存对于后者,正确的用法是调用新的,像往常一样,分配一个新的实例,但永远不会调用删除。当内存池对象超出范围时,会清理这些对象。
因此,如果我不小心将类型B实例存储在std::unique_ptr<>
中,则会出现分段错误。同样,在类型B指针上显式调用delete也是一个坏主意。
应该使用什么类型的C++机制来防止发生这些类型的错误?
举一个简单的,但丑陋的修复,我想重新命名我所有的B型班有一个像MP(内存池)的前缀,让我直观地理解不到他们的东西一个std内: :unique_ptr <>。
但是,如果我有一个语言机制可以在编译过程中发现问题,或者至少在我或其他团队成员偶然犯这类错误时以更明显的方式死亡,那将是非常可取的。
+1此方法听起来很有希望 - 我会在沙盒中试用这个方法,看看我能否使用它 – kfmfe04 2012-03-02 16:00:23