スマートポインタとメモリ割り当てに関するジレンマがあります。C++ - スマートポインタとカスタムメモリ割り当てジレンマ
私のスマートポインタクラスでは、自分のエンジン内のメモリモジュールを通して私自身の割り当てメモリを持っています。私は私のエンジンをDestroy()
したいとき
template <class T>
class Object
{
public:
inline Object()
{
Init();
if (mEngine)
{
mObj = (T*) mEngine->GetMemoryManager()->Allocate(sizeof(T));
mRefCount = 1;
}
}
は今、私は同様に解放されたのすべてのメモリをしたいです。これは、まずエンジンに関連するすべてのメモリをクリーンアップしたいからです。また、mObj
のクリーンアップは、メモリプールを使用してメモリを割り当てたり割り当てを解除したりするメモリマネージャを使用しているため、割り当て不可能なメモリへ。
私はスマートなポインタで足に自分自身を撃ったのですか?これを解決するスマートな方法はありますか?
おそらく、問題を示す自立型プログラムが役立つでしょう。 –