Re: [問題] 關於Loki::Singleton 的解構
※ 引述《adxis (acer)》之銘言:
: // 完整(修正)
: #include <vector>
: #include "loki/Singleton.h"
: #include "loki/SmartPtr.h"
: class Obj{
: friend struct Loki::CreateUsingNew< Obj>;
: friend struct Loki::DefaultSPStorage <Obj>;
: private:
: std::vector< Loki::SmartPtr<Obj> > innerCont;
: Obj(){}
: ~Obj(){}
這邊很重要
一個 singleton 應該是讓 SingletonHolder去管理 destruction
所以第二個 friend 就跟這個原則衝突了
: public:
: void Add(){
: Loki::SmartPtr<Obj> sp = new Obj;
: innerCont.push_back(sp);
: }
: };
: typedef Loki::SingletonHolder< Obj > SingletonObj;
: int main()
: {
: SingletonObj::Instance().Add();
: return 0;
: }
如果硬是要讓這個 class 可以用
我目前只知道在 ~Obj(){ } 裡面直接離開程式
會這樣用也是因為我實際需求上他也是最後一個解構的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.101.186
→
07/06 02:54, , 1F
07/06 02:54, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 6 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章