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池释放。