BOOST記憶體管理 intrusive ptr

2022-09-16 11:09:11 字數 480 閱讀 6622

參考鏈結

intrusive_ptr 是shared_ptr的插入式版本。與shared_ptr指標不同的地方就在於它不直接管理引用計數,而是呼叫一下函式來間接管理:

void intrusive_ptr_add_ref(t* p);

void intrusive_ptr_release(t* p);

有時我們必須使用插入式的引用計數智慧型指標。典型的情況是對於那些已經寫好了內部引用計數器的**,而我們又沒有時間去重寫它(或者已經不能獲得那些**了)。另一種情況是要求智慧型指標的大小必須與裸指標大小嚴格相等,或者shared_ptr的引用計數器分配嚴重影響了程式的效能(我可以肯定這是非常罕見的情況!)。從功能的觀點來看,唯一需要插入式智慧型指標的情況是,被指類的某個成員函式需要返回this,以便它可以用於另乙個智慧型指標(事實上,也有辦法使用非插入式智慧型指標來解決這個問題,正如我們在本章前面看到的)。intrusive_ptr 不同於其它智慧型指標,因為它要求你來提供它所要的引用計數器。

boost記憶體管理機制

boost主要是通過六種智慧型指標來管理記憶體的 scoped ptr scoped array shared ptr shared array weak ptr intrusive ptr。他們都是輕量級的物件,速度與原始指標相差無幾,對於所指的型別t也僅有乙個很小且很合理的要求 型別t的析構函式...

C 的boost學習 記憶體管理

boost庫的記憶體處理 智慧型指標 1,scoped ptr 不允許拷貝,賦值,只能在被宣告的作用域中使用,不需要使用delete釋放資源,自動釋放資源,可以獲得與原始指標同樣的速度。include include using namespace std void usagescopedptr c...

boost 記憶體池

1.什麼是記憶體池 池 是在計算機技術中經常使用的一種設計模式,其內涵在於 將程式中需要經常使用的核心資源先申請出來,放到乙個池內,由程式自己管理,這樣可以提高資源的使用效率,也可以保證本程式占有的資源數量。經常使用的池技術包括記憶體池 執行緒池和連線池等,其中尤以記憶體池和執行緒池使用最多。記憶體...