weak-ptr

    1熱度

    1回答

    我有用新的創建的對象的指針向量。多個線程通過各種獲取/設置以安全的方式訪問這個向量。但是,線程可能會刪除其中一個對象,在這種情況下,另一個線程指向該對象的指針不再有效。一個方法如何知道指針是否有效?選項1和2實際上似乎運作良好。我不知道他們將如何擴展。什麼是最好的方法?有沒有便攜版本3? 測試爲工作指針有效性的例子: 使用整數而不是指針。散列(std :: map)檢查指針是否仍然有效。公共方法是

    5熱度

    2回答

    在閱讀關於std :: weak_ptr的運算符<的討論後,我看不到任何爲何使用std :: weak_ptr的控制塊定義std :: hash不起作用的原因。我也不敢相信標準委員會忽視了這一點。有沒有人讀過關於這個話題的相關討論? 編輯:談運營商<性病:: weak_ptr的 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n159

    2熱度

    1回答

    我有一個boost::shared_ptr並附帶了自定義刪除程序。將此轉換爲weak_ptr是否丟失了刪除信息?如果是的話,我應該如何重新附加同一個刪除方shared_ptr -s從weak_ptr::lock()方法中獲得? 我正在實現的功能是指向某些類型的活動實例的容器weak_ptr -s。我需要自定義刪除器來刪除被刪除對象的容器條目。

    2熱度

    1回答

    我有班級,包含boost::weak_ptr<T>的std::set。我有兩個函數begin()和end(),它們向容器返回一個迭代器。但是,我不希望客戶能夠修改T。簡單地返回const_iterator將不起作用,因爲boost::weak_ptr指向的T將是可編輯的。 我想要做的是返回const_iterator到std::set<boost::weak_ptr<T const> >。從std

    2熱度

    3回答

    我有這樣的事情: enum EFood{ eMeat, eFruit }; class Food{ }; class Meat: public Food{ void someMeatFunction(); }; class Fruit: public Food{ void someFruitFunction(); }; class F

    51熱度

    2回答

    我瞭解如何使用weak_ptr和shared_ptr。通過計算其對象中引用的數量,我明白shared_ptr的工作原理。 weak_ptr如何工作?我嘗試閱讀boost源代碼,並且我不太熟悉提升以瞭解它使用的所有內容。 謝謝。