Язык С++ и программирование на нем. Рейзлин В.И. - 74 стр.

UptoLike

Составители: 

76
Имя параметра шаблона имеет в определяемой шаблоном
функции все права имени типа. Имя параметра шаблона видно во всём
определении и скрывает другие использования того же идентификатора
в области, внешней по отношению к данному шаблону.
Все параметры шаблона должны быть обязательно использова-
ны в спецификациях формальных параметров определения функции.
Заметим, что при необходимости можно использовать прототипы
шаблона функций. Например, прототип функции swap():
template <class type>
void swap (type&, type&);
При конкретизации шаблонного определения функции необходи-
мо, чтобы при вызове функции типы фактических параметров, соответ-
ствующие одинаково параметризованным формальным параметрам,
были одинаковыми.
Так, недопустимо:
int n=5;
double d=4.3;
swap (n, d);
17. Перечисления
Перечисление это тип данных, который удобно использовать в
случае применения в программе переменных и констант, принимающих
значения из сравнительно небольшого множества целых чисел, причём
таких, что обычно обращение к ним разумнее осуществлять по имени.
Может быть и так, что их значение само по себе не важно.
Примером такого множества констант могут служить названия
цветов, названия дней недели или месяцев года, названия шахматных
фигур или символические имена арифметических операций языка С++.
Задание типа перечисление начинается ключевым словом enum,
после которого идёт имя типа (иногда называемое тегом), за которым в
фигурных скобках следует список членов перечисления перечисли-
телей:
enum chess {king, queen, rook, bishop, knight, p};
enum month {Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov, Dec};