shared-ptr

    1熱度

    2回答

    我確實收到了一個來自庫調用的shared_ptr,並將它和一些資源傳回庫中。資源只能被刪除時的shared_ptr刪除其指針: std::ofstream* out = new std::ofstream(); ... shared_ptr<Lib::SomeClass> writer = Library.createWriter(out); Library.appendWriter(wr

    2熱度

    1回答

    某處我看到一篇關於創建boost shared_ptr的優化方式的帖子,以便它同時分配ptr管道和pointee。我做了SO搜索,但有很多職位shared_ptr,我無法找到它。請有人聰明請轉貼 編輯: 感謝您的回答。額外的信用問題。什麼是返回null shared_ptr的正確(首選?)成語?即 FooPtr Func() { if(some_bad_thing) ret

    8熱度

    4回答

    我最近被介紹到存在auto_ptr和shared_ptr,我有一個非常簡單/天真的問題。 我試圖實現一個數據結構,我需要指向一個Node(其中多於1個)數字可能會改變的孩子。這是最好的選擇,爲什麼: ​​ 我不知道,但我想auto_ptr不適用於數組。我不是,也不確定我是否應該使用雙指針。謝謝你的幫助。

    0熱度

    4回答

    我想製作一個shared_ptr的特殊版本,它可以在創建或銷燬時執行特定的操作,但我的計劃似乎被認爲shared_ptr的析構函數爲非虛擬的,這意味着當我重寫它時,當它們的最後一個實例被銷燬時,我的指針永遠不會被清除。 想到的唯一選擇是將此行爲構建到我想用於我的假設自定義shared_ptr的每個課程中,這並不可行(或在某些情況下可行)。 編輯: 我想這樣做的原因是因爲我想用一些類如LUA用戶數據

    3熱度

    3回答

    我有一個關於shared_ptrs和C++所有權的問題: 我有一堆在堆上創建的對象。每一個都有一個容器,它容納指向這些對象的指針,有時甚至是指向容器所屬的同一對象的指針。因爲我在這種情況下閱讀了使用shared_ptr的風險(循環),所以我正在考慮如何做到最好。 幸運的是,有一個類包含所有有問題的對象(但不是它本身),所以我認爲我把它放在它們的所有權上,這樣當有問題的對象保存原始指針時,它的容器就

    11熱度

    1回答

    關於boost::shared_ptr s的陷阱有幾個有趣的問題。在其中之一中,有一個有用的技巧是避免將boost::shared_ptr<Base>和boost::shared_ptr<Derived>指向Derived類型的同一對象,因爲它們使用不同的引用計數並可能過早地破壞對象。 我的問題:boost::shared_ptr<T>和boost::shared_ptr<const T>指向同一

    0熱度

    2回答

    我正在研究幾個類,我想知道如何在我的應用程序類中使用普通成員,其中成員需要使用shared_from_this()? 下面是一些代碼來澄清我的意思(見註釋) class Observable { public: void addObserver(boost::shared_ptr<Observer> observer) { // add to a list }

    0熱度

    1回答

    我想使用boost :: shared_ptr和boost :: enable_shared_from_this無濟於事。它看起來好像shared_from_this()返回錯誤的shared_ptr。這是我所看到的: Task* task = new TaskSubClass(); boost::shared_ptr<Task> first = boost::shared_ptr<Task>(

    0熱度

    1回答

    我正在使用ACE框架,但我會盡量不引用它來描述我的問題。 我有一個事件處理程序(派生自ACE_Event_Handler的類)。 對事件處理函數的引用由shared_ptr的映射中的某個經理類保存。 在一定的時間點我想: 移除經理地圖事件處理 事件處理程序的一些方法應該由第三類被稱爲持有行指針的事件處理程序(那些熟悉ACE的,它是由ACE Reactor調用的handle_close()) 問題是

    0熱度

    4回答

    我有以下代碼,它應該將線程A的shared_ptr實例添加到入侵鏈接列表中。其他消費者線程隨後會將其從名單。然而,在某個時候,我的shared_ptr似乎被破壞,並且在鏈接列表中對它的引用不再有效,導致Assert。 有人能告訴我我做錯了什麼嗎?我懷疑這是因爲我在本地範圍內創建了原始的shared_ptr,並且它被破壞了。雖然名單應該仍然有一個參考? (這不是生產代碼) 編輯:使用的變量 Defi