Описание тега intrusive-containers
2
ответа
Что означает аргументы шаблона этого типа - `ClassA<T> T:: * ELEM`?
Я недавно сталкивался с этим кодом в контексте навязчивых списков: template<typename T> struct Node{ T *next; T *prev; Node(): next(nullptr), prev(nullptr){} }; /* * Intrusive doubly-linked-list * * */ template<typename T, Node<T> T::…
26 окт '16 в 20:12
1
ответ
Должен ли класс быть стандартным типом макета, чтобы быть уверенным в смещениях памяти его членов?
Допустим, я хочу написать навязчивый список. У меня есть шаблон класса навязчивого списка, который принимает тип и указатель на член для использования в качестве узла. Это выглядит примерно так: // This needs to be a member of anything the intrusive…
26 май '15 в 05:08
2
ответа
Пытаюсь выучить boost::intrusive Q2
Если я раскомментирую эти //BaseList baselist; //MemberList memberlist; за пределами цикла и закомментируйте те, которые внутри цикла, он выходит из строя. Мне нужно иметь возможность иметь базовый список (и список участников) вне любого цикла. Как …
11 ноя '14 в 05:02
1
ответ
Boost::IntrusiveList с общими указателями
Поэтому я пишу систему обработки событий, используя FastDelegate<> и библиотеку наддува. Мне нужно настроить очередь общих указателей на данные событий, а также список FastDelegate> для слушателей. Так вот в чем проблема. Навязчивый список и очередь…
09 фев '15 в 22:17
1
ответ
Навязчивый список unique_ptrs?
У меня есть программа, которая является многопоточной и содержит навязчивый список объектов. Мне нужно передать объекты в этом списке нескольким потокам, но только один поток когда-либо будет владеть объектом за раз, что означает, что мне не нужен э…
07 окт '10 в 09:15
2
ответа
Использование BOOST_FOREACH с постоянным навязчивым списком
Рассмотрим следующий код для перебора навязчивого списка с помощью макроса BOOST_FOREACH: #include <boost/foreach.hpp> #include <boost/intrusive/list.hpp> typedef boost::intrusive::list< boost::intrusive::list_base_hook<> > M…
31 май '12 в 15:16
2
ответа
Односвязный список Windows (_SINGLE_LIST_ENTRY)
Я просто делаю отладку в аварийном дампе Windows 7, и я наткнулся на односвязный список, который я не могу полностью понять. Вот вывод из WinDBG: dt _GENERAL_LOOKASIDE_POOL fffff80002a14800 -b .... 0x000 SingleListHead: _SINGLE_LIST_ENTRY +0x000 Nex…
12 ноя '13 в 15:36
1
ответ
Присвоение нового значения итератору навязчивого контейнера
Во время работы над интрузивным контейнером splay_set необходимо сбросить локальные переменные-члены итератора. Пожалуйста, смотрите пример кода ниже - #include <boost/intrusive/splay_set.hpp> using namespace boost::intrusive; class Obj { publ…
27 ноя '14 в 07:49
4
ответа
В чем преимущество встраивания связанного списка в структуру данных?
Читая о структурах данных ядра во FreeBSD, я наткнулся на MBuf, MBuf содержит указатель на следующий MBuf в цепочке MBuf, реализующий связанный список. каждый MBuf сам по себе также содержит данные, относящиеся к этому узлу в связанном списке. Я бол…
04 мар '17 в 17:35
2
ответа
Перехватчики членов и базовые перехватчики в навязчивых структурах данных
Я кодирую навязчивую структуру данных и задаюсь вопросом, использовать ли базовые или членские хуки. Поскольку код будет вызываться много раз, мой вопрос касается производительности и степени, в которой компиляторы могут встроить такой код. Базовые …
11 фев '14 в 13:19
1
ответ
Могу ли я создать резервную навязчивую коллекцию, используя пул повышения в качестве хранилища?
Я понимаю, что расширенные навязчивые коллекции в конечном итоге хранят ссылки на объекты и, таким образом, для объектов требуется собственное управление временем жизни. Мне было интересно, могу ли я просто использовать Boost Pool для управления эти…
18 сен '14 в 16:27
1
ответ
Повысить навязчивый unordered_set, прерванный в 1.48 с GCC в режиме C++11
Unordered_set в Boost Intrusive не работает, если вы выполняете ванильную установку Fedora 17, которая поставляется с GCC 4.7 и Boost 1.48, и используете режим C++11. На Fedora 16, которая поставляется с GCC 4.6.2 и Boost 1.47, это работает. Это нар…
03 май '12 в 23:43
1
ответ
Пытаюсь выучить boost::intrusive Q5
У меня есть следующая программа. Я построил это с gcc-4.9.2 под linux. Мои вопросы: 1) Почему хеш-таблица кажется отсортированной в первый раз, но теряет сортировку после удаления элементов из значения? 2) Как мне пройти хеш-таблицу по ключу и сказа…
23 мар '15 в 02:02
1
ответ
Как клонировать крючок с помощью Boost Intrusive?
Я изучаю Boost Intrusive. У меня проблема при попытке скопировать контейнер STL. Я использую std:: vector. Содержит элементы класса list_base_hook в режиме auto_unlink но информация об узле (is_linked()) теряется при вызове конструктора копирования.…
10 дек '14 в 11:45
2
ответа
Контейнеры C++ STL непригодны для использования без исключений, что мы можем с этим поделать?
Предполагаемый идеал C++ - "то, за что вы платите". Однако это может быть довольно изнурительным из-за исключений и их повсеместного использования в STL. Прежде чем кто-то скажет "просто включите исключения", жизнь не настолько щедра к средам програ…
25 мар '12 в 04:31
3
ответа
Круговая зависимость C++ с навязчивым связанным списком
Я реализовал этот навязчивый связанный список: template <class Entry> struct LinkedListNode { Entry *next; Entry *prev; }; template <class Entry, LinkedListNode<Entry> Entry::*NodeMember> class LinkedList { public: void init (); bo…
02 окт '12 в 22:39
1
ответ
std::forward_list - стирание с сохраненным итератором
Я пытаюсь сохранить глобальный список экземпляров определенного (базового) класса, чтобы я мог отследить их, просматривая этот глобальный список в любое время. Я считаю, что наиболее правильный способ решения этой проблемы - навязчивый список. Я слы…
20 сен '13 в 04:05
2
ответа
Почему там нет boost::intrusive::map?
В расширенной документации ( http://www.boost.org/doc/libs/1_55_0/doc/html/intrusive.html) говорится, что навязчивые контейнеры реализованы для list (оба одинарные / двойные связи), set а также multiset, Я не мог найти реализацию для карты. Есть ли …
13 май '14 в 14:00
3
ответа
C++ CRTP и доступ к вложенным typedefs из базы
редактировать: я помещу здесь ссылку на github, когда закончу изменять дизайн для всех, кому это интересно. Фон Я заменяю boost::intrusive, intrusive_setс моей собственной реализацией в виде 64-битных скомпилированных наборов вторжений 3 x 8-байтовы…
13 ноя '11 в 19:01
1
ответ
Повысить навязчивый своп
У меня класс объявлен как class MyClass : public list_base_hook<link_mode<normal_link>>, У меня также есть список, объявленный как list<MyClass> global_list_MyClass, Я вставляю 10 узлов в global_list_MyClass используя цикл. Моя цел…
02 дек '13 в 08:03