Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
_mayor
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
#1

Intrusive list template

30.08.2009, 11:20. Просмотров 1348. Ответов 6
Метки нет (Все метки)

intrusive list template

для тренировки хочу попробовать написать шаблон списка, который объединяет и принимает элементы унаследованные или созданые от базового класса

зы задачка учебная, вводные: не использовать шаблонов контрейнеров stl
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2009, 11:20
Ответы с готовыми решениями:

[c++][template][sfinae] перегрузки шаблонов
добрый вечер. сабж: есть шаблон функции работы со строками. если...

Своеобразное раскрытие аргументов variadic template
Товарищи. Как бы сделать так, чтобы variadic раскрылся в нечто такое: ...

[template] почему код не компилируется без конструктора
добрый вечер. вопрос поместил прямо в коде. http://rextester.com/AESO94403...

[c++][bug][template][cross - platform] workaround for msvc`s compiler
добрый день. следующий код успешно собирается gcc ...

Перенаправление указателя при перегрузке оператора в variadic template
Есть вот такой вот код (сделан в vs2014): #include "stdafx.h" #include...

6
Monte-Cristo
2795 / 1381 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
30.08.2009, 11:25 #2
так ты хочешь? или хочешь чтоб мы написали?)
0
zim22
depict1
276 / 141 / 4
Регистрация: 11.07.2009
Сообщений: 606
30.08.2009, 11:35 #3
boost::intrusive::list
0
_mayor
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
30.08.2009, 16:19  [ТС] #4
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
так ты хочешь? или хочешь чтоб мы написали?)
ну можно, чтоб написали или подсказали как это делается

меня в основном интересует, как сделать в компиляторе проверку, что в шаблон подсунут потомок базового класса

Добавлено через 1 час 1 минуту
и еще интересует как по возможности избежать оверхида, если проверку компилятора кинет в рантайм

зы ваще есть возможность проверить перед генерацией шаблона от кого был унаследован его параметр и если что прервать генерацию?
0
_mayor
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
30.08.2009, 21:15  [ТС] #5
похоже я запутался как в реалзиации, так и в терминах ...

в общих чертах, пока безо всяких template, чем отличается intrusive от non-intrusive контейнеры?
0
_mayor
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
31.08.2009, 19:26  [ТС] #6
вроде разобрался

intrusive_list<T> практически тоже самое, что list<T*>

какими тестами и как обычно сравнивают производительность реализаций списков?
0
_mayor
1 / 1 / 1
Регистрация: 29.08.2009
Сообщений: 63
01.09.2009, 19:13  [ТС] #7
увяз в коде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct slink {
    slink* next;
    slink(slink* p=0):next(p) {}
};
 
struct lint: public slink {
    int i;
    //bool operator==(const lint& l) { return i==l.i;}
    //bool operator!=(const lint& l) { return i!=l.i;}
};
 
template<class T> class intrusive_list {
    T *head;
    T *last;
    size_t s;
    public:
    class iterator {
        T* p;
        public:
        iterator(T* pp):p(pp) {}
        iterator& operator++(int ) { 
            p=p->next;
            return *this;
        }
        T& operator*() { return *p; }
как обычно конфликт
T* p;
p=p->next

решают?
0
01.09.2009, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.09.2009, 19:13

template и __property
Вот описание class DataTo public: __property byte...

virtual template function
В С++ нельзя делать шаблонные виртуальные методы. Как можно это обойти в этом...

Rad studio template class error
файл Block.h ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru