討論串[問題] 關於Loki::Singleton 的解構
共 6 篇文章
首頁
上一頁
1
2
下一頁
尾頁

推噓0(0推 0噓 4→)留言4則,0人參與, 最新作者wowtiger (小虎)時間16年前 (2009/07/12 01:53), 編輯資訊
0
0
0
內容預覽:
SingletonObj::Destory();. 記得這種玩法. 必須要做這樣處理. 沒有處理的話. 在 VC++ 那邊的 _at_exit() 會作這類 global destory. 而 crash 在這邊. 另外我不清楚你的 SmartPtr 有沒有作 atomic inc/dec....
(還有99個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者adxis (acer)時間16年前 (2009/07/12 01:29), 編輯資訊
0
0
0
內容預覽:
沒注意到yoco大有回文 現在才看到 囧. 先回憶一下那時候遇到的狀況. class Obj. {. std::vector< Loki::SmartPtr<Obj> > cont;. Obj(){}. ~Obj(){ cerr<<"You kill me!!! Bastard!!!"<<endl;
(還有116個字)

推噓1(1推 0噓 4→)留言5則,0人參與, 最新作者yoco315 (眠月)時間16年前 (2009/07/08 03:09), 編輯資訊
0
0
0
內容預覽:
不是 SmartPtr 的關係.... 沒道理容器不能放 SmartPtr.... 我懷疑是 VC 的 bug. 我看那個當掉的地方是 VC 在檢查 invalid delete 的碼. 我猜是因為建構子沒東西. VC 不知道做了什麼最佳化想要省掉東西. 結果造成記憶體沒有 new. 但是還是進行了
(還有219個字)

推噓0(0推 0噓 1→)留言1則,0人參與, 最新作者adxis (acer)時間16年前 (2009/07/06 01:08), 編輯資訊
0
0
0
內容預覽:
這邊很重要. 一個 singleton 應該是讓 SingletonHolder去管理 destruction. 所以第二個 friend 就跟這個原則衝突了. 如果硬是要讓這個 class 可以用. 我目前只知道在 ~Obj(){ } 裡面直接離開程式. 會這樣用也是因為我實際需求上他也是最後一個

推噓1(1推 0噓 0→)留言1則,0人參與, 最新作者adxis (acer)時間16年前 (2009/07/05 23:46), 編輯資訊
0
0
0
內容預覽:
// 完整(修正). #include <vector>. #include "loki/Singleton.h". #include "loki/SmartPtr.h". class Obj{. friend struct Loki::CreateUsingNew< Obj>;. friend s
(還有371個字)
首頁
上一頁
1
2
下一頁
尾頁