0

C++ で並行オブジェクト プールを設計したいのですが、可能なプロトタイプは次のとおりです。

template<std::size_t OBJ_SIZE>
class Pool {
public:
    template<typename T>
    void new(std::shared_ptr<T> & product);
    // more details...
};
  • オブジェクト (製品) が返されると、その有効期間は、オブジェクトを含むスマート ポインターによって完全に制御されます。
  • プールは複数のスレッドで使用できます。

ユーザーがオブジェクト/メモリを使い終わった後、オブジェクト/メモリを自動的に再利用するにはどうすればよいですか?

私の考えは、製品のデストラクタで呼び出されるプールに delete() メソッドを持つことです。

より良いデザインはありますか?たとえば、製品クラスがプールとあまり結合されていない方法 (これは一般的なプールであることに注意してください)。どんなアイデアでも大歓迎です。

4

1 に答える 1