Включение аппарата шаблонов в С++ потребовало решения многих проблем, касающихся взаимодействия обычных и шаблонных конструкций. Даже в стандарте С++, который является очень лаконичным документом, раздел о шаблонах (см. п. 14 в [1]) занимает 60 страниц (235-297).
Одна из таких общих проблем — вложенные конструкции, например: • поле-шаблон в классе или в шаблоне;
• метод-шаблон, в том числе конструктор, в классе или шаблоне;
• вложенный шаблонный класс.
Ограничений на вложенные шаблонные классы нет: и класс может быть объявлен внутри шаблона, и шаблон — внутри как класса, так и шаблона. Единственное ограничение — шаблонный класс нельзя объявлять внутри функции. Множество прекрасных примеров вложенных классов можно обнаружить в различных файлах стандартной библиотеки шаблонов (STL) [29-35]. Например, любой шаблонный класс, реализующий один из контейнеров, содержит вложенные классы итераторов.
Кроме того, есть еще множество нюансов, связанных с параметрами шаблона, не являющимися типами, например параметрами-шаблонами, параметрами-указателями и параметрами-ссылками. Рассмотрим наиболее часто используемые из этих конструкций.
Опубликовал Kest
December 15 2013 21:26:37 ·
0 Комментариев ·
2975 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.