intrusive-containers

    3熱度

    1回答

    如果您執行GCC 4.7和Boost 1.48附帶的Fedora 17的vanilla安裝並使用C++ 11模式,則Boost Intrusive的unordered_set會中斷。在GCC 4.6.2和Boost 1.47的Fedora 16上,它工作正常。這打破了真正的代碼,它甚至打破在official documentation的例子: #include <boost/intrusive/u

    0熱度

    3回答

    我實現了這個侵入鏈表: template <class Entry> struct LinkedListNode { Entry *next; Entry *prev; }; template <class Entry, LinkedListNode<Entry> Entry::*NodeMember> class LinkedList { public:

    1熱度

    1回答

    我目前正試圖圍繞一些Windows旁視列表進行封裝,並且我看到一些內存地址讓我感到困惑。 從另一個問題我貼出來,一些代碼所產生,這要歸功於sergmat(original question): lkd> !lookaside iopsmallirplookasidelist Lookaside "" @ 82d5ffc0 "Irps" .... lkd> dt _SINGLE_LIST_EN

    1熱度

    2回答

    我的目標是進行字符串實習。爲此,我要尋找一個散列 容器類,可以執行以下操作: 分配的每個節點內存只有一個塊 每節點 不同用戶數據大小 值類型看起來像這: struct String { size_t refcnt; size_t len; char data[]; }; 每個字符串對象將有不同的大小。這將通過 operablyor new + placemen

    1熱度

    1回答

    所以我正在使用FastDelegate和boost庫編寫一個事件處理系統。我需要爲事件數據設置一個共享指針的隊列,以及爲聽衆設置一個FastDelegate>的列表。所以這是問題。 侵入式列表和隊列不允許shared_ptr或甚至是常量引用,這會導致我的代碼導致編譯時錯誤。無論如何,我可以做到這一點? 把這個共享ptr交給委託人看來是最安全的,直到每個人都真正完成它。

    2熱度

    2回答

    考慮下面的代碼使用BOOST_FOREACH宏遍歷侵入名單: #include <boost/foreach.hpp> #include <boost/intrusive/list.hpp> typedef boost::intrusive::list< boost::intrusive::list_base_hook<> > MyList; void iterate (con

    0熱度

    2回答

    我需要一個侵入式排序的雙鏈表。我不想使用boost :: intrusive,所以我自己這樣做,並遇到一個問題 對於一個雙向鏈表有幾個操作,這裏只是其中的一個,這將有助於說明我的點: template<typename LIST, typename NODE> void insertAfter(LIST *list, NODE *node, NODE *newNode) { newN

    0熱度

    1回答

    我在Visual C++ 2008上實現了boost :: intrusive對我的項目之一,我偶然發現了一個問題。我正在使用splay_multiset容器的splay鉤子。我在MyClass下公開定義了splay鉤子(代碼如下)。 #include <boost/intrusive/unordered_set.hpp> #include <boost/intrusive/splay_set.

    3熱度

    2回答

    我正在編寫一個侵入式數據結構並想知道是否使用基本掛鉤或成員掛鉤。由於代碼將被多次調用,因此我的問題是關於性能以及編譯器能夠在多大程度上嵌入此類代碼。 基本鉤子基於繼承,而成員鉤子通過模板參數使用指向成員的指針。 我的設計選擇是使用成員鉤子,但我的經驗說指針比靜態代碼更難以優化。另一方面,所有這些指針在編譯時都是已知的,也許編譯器可以做一些魔術來分析發生了什麼。 有沒有人有這方面的經驗?任何數據,提

    1熱度

    1回答

    我明白,增強入侵集合最終存儲對象的引用,因此對象需要他們自己的生命週期管理。 我想知道我是否可以簡單地使用boost池來管理這個生命週期。當我想在一個新的對象列表中存儲一個新的對象時,我是否可以從boost池中分配一個對象並將其存儲在列表中?然後,當我從列表中刪除,然後我使用boost池釋放。