shared-ptr

    3熱度

    1回答

    我有下面的類定義: class Portal { public: Portal(const vector<vec3> &vertices, shared_ptr<Sector> target); ... }; 別的地方,我想創建一個instanceof說類是這樣的: auto portal = make_shared<Portal>(portalVerti

    13熱度

    1回答

    是否有人知道shared_ptr和weak_ptr連同懶惰的初始化夥伴一起執行?類的要求是: 一個lazy_ptr類,允許客戶端後構造對象(如果有的話),而不需要構造函數實現 一個weak_lazy_ptr類,有三種可能的狀態:尚未構建(不會鎖定到shared_ptr),構造(將鎖定到shared_ptr)和破壞(不會鎖定到shared_ptr) 我創建了一些類,它們在前一段時間完全沒有完成這項工

    0熱度

    1回答

    我想在vs2005中編譯我的代碼。 我使用的std ::地圖和boost :: shared_ptr的(v1.47.0) 我的代碼看起來是這樣的 struct B { int a; } typedef boost::shared_ptr<B> K; std::map<const std::string, K > mymap; //some code std::map<co

    1熱度

    1回答

    我有以下代碼: #include <memory> int main(void) { std::shared_ptr<int> currInt(nullptr); std::shared_ptr<int> newInt(new int); currInt = newInt; return 0; } 事實證明,這

    14熱度

    2回答

    因爲我小白的聲譽,我不能回答這個Thread,在具體接受的答案: 我從來沒有使用過的boost ::侵入智能指針,但是如果你要使用的shared_ptr智能指針,你可以使用的weak_ptr緩存對象。 當系統決定釋放內存時,那些weak_ptr指針不會被視爲引用,但只要該對象尚未被刪除,就可以用於檢索shared_ptr。 這當然是一個直觀的想法,但是,C++標準不支持比較weak_ptrs,所以

    3熱度

    3回答

    我發現,這是不允許從類調用shared_from_this在析構函數: https://svn.boost.org/trac/boost/ticket/147 此行爲是由設計。由於析構函數會銷燬對象,因此創建shared_ptr並不安全,因爲一旦析構函數結束,它將變得懸而未決。 我理解這個論點,但是如果我需要一個「shared_from_this」指針來清理引用(不適用於共享所有者發佈),該怎麼辦

    9熱度

    2回答

    如果我moveshared_ptr'a'到shared_ptr'b'是'a'保證爲空? 是否的任何被移動後的標準類指定的狀態?

    1熱度

    1回答

    我嘗試從繼承自回調接口的派生類將shared_from_this()傳遞給第三個類,該類需要構造函數中的回調基類shared_ptr時遇到了weak_ptr異常的問題。爲什麼這不起作用?見下文簡化測試用例: #include <boost/tr1/memory.hpp> class MyCallbacks : public std::tr1::enable_shared_from_this<M

    0熱度

    2回答

    我想有一個shared_ptr作爲一個類的成員,但shared_ptr管理的類型每次都是不同的,只有在運行時才知道。有什麼方法可以聲明這樣的成員,並在以後進行初始化?

    2熱度

    1回答

    我是shared_ptrs的新手,一直在努力處理「可選」指針參數的正確方法。也就是說,如何將指針參數傳遞給方法,其中任何一個方法在任何給定的調用中都可能爲NULL。這裏有一個簡單的例子使用原始指針: class Obj { SomeType *ptrA; SomeType *ptrB; ... void method(SomeType* a, SomeTyp