实现CopyOnWrite的ObjectPool

时间:2014-04-29 13:51:01

标签: c++ c++11 shared-ptr

我正在尝试设计一个模板类,它充当工厂来有效地创建一个类型(比如一个对象)。此外,创建的对象应该是唯一的,并且不应创建在其成员上具有相同值的两个对象。该类的用户应该提供散列函数(类似于std :: unordered_map C ++ 11),这将有助于决定是否需要创建新对象或者可以使用现有对象。需要一种机制来决定何时不再使用该对象。

问题:对象池通常预先分配一组对象,并减少分配和释放的时间。但是,在这种情况下,由于需要参考计数,如何实现。不确定如何在对象池中使用std :: shared_ptr。

编辑:写入位上的副本:如果使用该对象的用户决定更改该对象,则他必须获取一个新对象或一个具有他正在将对象更改为的值的现有对象。 此外,Object应该将operator ==定义为注释。

0 个答案:

没有答案