Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351

Шаблонное в аллокаторах

15.02.2014, 18:50. Показов 1041. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разбираю стандартные аллокаторы и мне интересно узнать как понимать следующий typedef, как он работает?
C++
1
2
3
4
5
6
template <class T, class A = allocator<T> >
    class list
    {
    typedef typename A::template rebind<Link>::other Link_alloc;
    //...
    };
Непонятна именно часть typename A::template rebind - что это? Как это определяется? (имеется в виду не структура rebind, а конструкция.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2014, 18:50
Ответы с готовыми решениями:

Шаблонное наследование
Это не вопрос, просто выражение удивления у дилетанта. Я крайне удивился, когда такое сработало: #include &lt;iostream&gt; ...

Шаблонное наследование
#include &quot;stackcalculator.h&quot; #include &lt;cstring&gt; #include &quot;stack.h&quot; #include &quot;pointerstack.h&quot; int length = 100; template...

Шаблонное дерево. Длиннейший путь.
Здравствуйте. Нужно написать метод, который бы возвращал длиннейший путь в шаблонном дереве в виде динамического массива элементов(путь...

5
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
15.02.2014, 23:00
BESSON_off, шаблон класса rebind и вложенный тип other зависят от параметра шаблона A. До инстанциирования неизвестно, чем они являются - типом и ещё чем, поэтому надо это самому указывать - typename - тип, template - шаблон.
0
 Аватар для BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
17.02.2014, 20:36  [ТС]
Можно поподробней... поэтапно
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
17.02.2014, 23:52
BESSON_off, по каким этапам? :/ Вот тут есть неплохое объяснение http://stackoverflow.com/quest... e-keywords (1-й ответ)
0
 Аватар для BESSON_off
3 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 351
19.02.2014, 19:37  [ТС]
Про шаблоны я вдупляю. Все, что мне непонятно строка
C++
1
typename A::template rebind<Link>
Т.е. имеем код:
C++
1
2
3
4
5
6
7
8
9
10
11
typename <class T>
struct Temp
{
template <class U>
struct Xz {typedef typename Temp<U>::Other;};
};
template <class X, class U>
class Link
{
typedef typename Temp<X>::Xz<U>::Other Link_other;
};
(пример не имеет смысла, приведен лишь для наглядности)
Вот это мне понятно... А, то что я писал выше... никакой логики по моему... не?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
19.02.2014, 20:03
Цитата Сообщение от BESSON_off Посмотреть сообщение
C++
1
typename Temp<X>::Xz<U>::Other
Так же, как здесь ты используешь typename для того, что бы указать, что Other - это тип, для Xz необходимо указать, что это шаблон, т.е. использовать template:
C++
1
typename Temp<X>::template Xz<U>::Other
Всё потому что определение Temp<X> неизвестно до инстанциирования, и соответственно неизвестно чем является Xz.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2014, 20:03
Помогаю со студенческими работами здесь

Шаблонное вычисление типов и Variadic Templates
Можно ли сделать что-то вроде этого: Этот код, естественно, не компилируется: template&lt;typename T&gt; class mtd_parser; ...

Решение задачи через шаблонное выражение
Помогите направить меня на путь истины.Дана вот такая программа в двух файлах. Когда я задаю значения для переменных в выражениях vir1 и...

Шаблонное наследование или как наследоваться от <T>?
Хочу всем стандартным контролам прикрутить дополнительные плюшки, вроде всплывающих подсказок, текст которых можно задавать им через...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru