reference-counting

    0熱度

    1回答

    如果我使用reinterpret_cast從IInspectable*轉換爲Object^,我仍然負責釋放原始的IInspectable*? 顯然,當它超出範圍的生產Object^會釋放自己,所以真正的問題是使用reinterpret_cast是否意味着一個的AddRef,賦予Object^它自己的引用計數,或者需要我已經有了參考的所有權。 似乎有成爲爭論的期望兩種方式:一方面,一個COM操作不應

    0熱度

    1回答

    我開始使用boost :: signals2跟蹤對象的破壞。我寫了一個小測試來看我是否仍然可以在破壞者here中使用信號。它似乎工作。然後我開始使用它來跟蹤引用其他對象的對象列表。我的結構或多或少像這樣: 對於結構的簡化示意圖:http://oi50.tinypic.com/16c8cwn.jpg 我有兩個類IModel和I塊。 IModel有許多IBlocks,而IBlock有一個IModel父

    1熱度

    1回答

    引用計數我是相當新的Python和C API的。我仍然不明白引用計數如何工作。我已經編寫了一個粒子跟蹤模塊,該模塊向python公開了一些我過去編寫和測試過的C++線程跟蹤函數。 (據我所知,他們本身沒有內存泄漏)。 當我把這些功能中的一個,從內Python的反覆,我可以看到內存使用量增長緩慢。我相信有內​​存泄漏的地方(可能是無處不在:O)(?上item_py,例如) 我複製了主要跟蹤功能的相關

    1熱度

    3回答

    分配結構'對象'的引用計數的基礎知識對我來說看起來相當簡單:爲新對象提供RC 1;賦值減少舊對象的RC(如果RC = 0,則爲空),並增加指定對象的RC;減少離開範圍的所有對象的RC。 但是,當RC'ed對象傳遞給函數或從函數返回時,我需要做什麼我有點困惑。在每次函數調用之前/之後,我是否必須加/減RC?如果需要,應該在什麼地方放置inc和dec?(在函數調用之後的起始&端處或在&之前?)?關於函

    0熱度

    1回答

    我想知道如何解決以下問題。在我的C++類中,我有一個輔助的PyObject指針。 class Foo { public: // Should I new the dictionary here in constructor? Foo() { } // Must decrease the reference count or expli

    3熱度

    1回答

    std::shared_ptr需要在保存引用計數的堆上分配一個控制塊。我從http://ootips.org/yonat/4dev/smart-pointers.html瞭解到另一種方法,它將所有引用保存在雙向鏈表中。它不需要額外的分配和計數器,但參考對象本身更大。 是否有基準或任何明確的原因顯示一個實施比其他實施更好?

    20熱度

    2回答

    爲什麼在返回Py_None之前需要Py_INCREF(Py_None),如下所示? Py_INCREF(Py_None); return Py_None; 如果省略Py_INCREF(Py_None),會發生什麼情況?

    1熱度

    2回答

    使用boost::shared_ptr的程序員需要避免循環,以免產生資源泄漏。一般建議是在可能創建這種循環的情況下使用boost::weak_ptr。然而,這樣做會造成意圖上的差距,因爲人們可能傾向於使用shared_ptr,但僅僅因爲週期問題才這樣做。 但是,在我看來,應該可以創建一種特殊的shared_ptr,它可以通過鏈接循環中所有指針的引用計數來避免循環問題。因爲我可以想辦法做到這一點,我

    6熱度

    8回答

    我想打印在哪一行AddRef和Release是called.Here是代碼 在下面的代碼我已經在ReferenceCount類,其主要功能,以增加和減少refernce計數創建。 Referencemanager類跟蹤引用計數,並在對象達到0時刪除對象。 Test1是測試類。主要我創建Test1指針並用CReferenceManager類包裝它。現在在創建CReferenceManager類的過程

    1熱度

    1回答

    我知道NSObject沒有retainCount實例變量 - 實際上它沒有與其生存期或引用計數環境相關的實例變量。因此,我的問題是,NSObject(或任何對象)如何在沒有ivar的情況下跟蹤自己的引用計數? 更普遍,還有什麼其他的系統有沒有在不使用明確的引用計數實例變量創建引用計數的環境?