0
智能指針(一個或多個)完全控制:併發對象池,其產品的壽命由含有我想設計在C++併發對象池,可能原型作爲對象
template<std::size_t OBJ_SIZE>
class Pool {
public:
template<typename T>
void new(std::shared_ptr<T> & product);
// more details...
};
- 一旦對象(產品)被返回,它的生命週期完全由包含該對象的智能指針控制。
- 池可能被多個線程使用。
用戶完成後,我們如何自動回收對象/內存?
我的想法是在產品的析構函數中調用池中的delete()方法。
有更好的設計嗎?例如一種產品類與Pool更少耦合的方式(注意它是一個通用池)。任何想法都歡迎。
我不確定我是否理解這些要求。你是說你希望分配對象的生命週期由傳入的不相關shared_ptr的生命週期來控制? –
@RichardHodges,shared_ptr用於包含返回的對象,並控制其生存期。 – Clinton