Д. Вандевурд, Н.М. Джосаттис - Шаблоны C++. Справочник разработчика (2003) (1160769)
Текст из файла
ОцифроВка: Дмитрий И1дй.сИ2пс! Шестеркин бт3ГЬфуапсФех. Р и ББК 32 973.26-018.2.75 В17 УДК 681.3.07 Издательский дом "Вильямс" Зав. редакцией С.Н. Триеуб Перевод с английского В.И. Кочеткова, карй. техн. наук И.В. Красикова, ПИ Мезепко, А. Наумовна, В.В. Новикова, В.Н. Романова, Под редакцией канд. техн. наук И.В. Красикова По общим вопросам обращайтесь в Издательский дом "Вильямс" по адресу: !пФ09ьчййашзрпЫ!8Ь(пй.сош, Ьцр:Нтчьчьч.тч!!!!ашзрпЫ18!ппй.согп Ваиденурд, Дэвид, Джосвттис, Николаи, М. В17 Шаблоны С++: справочник разработчика.: Пер. с англ. — М.: Издательский дом "Вильямс", 2003.
— 544 с.: ил. — Парал. тит. англ. 1БВ!ь! 5-8459-0513-3 (рус.) Шаблоны С++ представляют собой активно развивающуюся часть языка программирования, предоставляющую программисту новые возможности быстрой разработки эффективных и надежных программ и повторного использования кола. Данная книга, написанная в соавтор. стае теоретиком С++ и программистом-практиком с большим опытом, удачно сочетает строгость изложения и полноту освещения темы с вопросами практического использования шаблонов. В книге содержится масса разнообразного материала, относящегося к программированию с использованием шаблонов, в том числе материал, который даст опытным программистам возможность преодолеть современные ограничения в этой области.
Книга предполагает наличие у читателя достаточно глубоких знаний языка С++; тем не менее стиль изложения обеспечивает доступность материала как для квалифицированных специалистов, так н для программистов среднего уровня. ББК 32.973.26-018.2.75 Все названия программных продуктов являются зарегистрированными торювымп марками соответствующих фирм. Никакая часть настоящего издания ии в каких целях ие может быть воспроизведена в какой бы то ни было форме и какими бы то ии было средствами, будь то элезтрониые илп механические, включая фотокопирование и зались на магинтиыа посптель, если па зто иет письменного разрешения издательства А44(зоп-Ьтгез!еу РпЬ- 1!змлд Сатрапу, 1пс. 15ВМ 5.8455ь0513-3 (руе.) 18ВХ 0-201-73484-2 (англ.) О Издательский лом "Вильямс", 2003 О Реагзоп Ейкапоп,!пс., 2003 Ацйопзео папз1апоп йош йе Епв!!зЬ 1апвоаве ейпоп роЫ!звео Ьу Асйзоп-туез1еу РвЬЕЙ)пв Сатрапу, (пс., Сорупвй! О 2003 Ьу Ремзоп Еопсапоп,! пс.
Ап пвьн гезегчеп. Ко раг! о( йц воок пму ье юргооосео, погеа !и ю!печа! зуыеш ог !гапмшпеп!а апу (опп ог Ьу апу шеапз, е!есоошс, шесьап)са!, рЬовкоругпв, гесопйпа, ог ойегпме п!йоц! еьйег йе рпог пппеп рет; ппмюп о йе РцЫВЬег. йозз!ап )апдваве еонюп роЫВЬео Ьу цг(В!апп РоЫВЫпв Ноеве ассогйпв го йе Авгеешеп! п)й Вд! Еп!егрпзез! пюгпапопа1, Сорупвм О 2003 Оглавление Предисловие Благодарности Глава 1. Об этой книге 17 18 21 Часть 1. Основы 29 Глава 2. Шаблоны функций Глава 3.
Шаблоны классов Глава 4. Параметры шаблонов, не являющиеся типами Глава 5. Основы работы с шаблонами Глава 6. Применение шаблонов на практике Глава 7. Основные термины в области шаблонов Часть 11. Углубленное изучение шаблонов Глава 8. Вглубь шаблонов Глава 9.
Имена в шаблонах Глава 10. Инстанцнрование Глава 11. Вывод аргументов шаблонов Глава 12. Специализация и перегрузка Глава 13. Направления дальнейшего развития Часть 111. Шаблоны и конструирование Глава 14. Полиморфные возможности шаблонов Глава 15. Классы свойств и стратегий Глава 16.Шаблоны и наследование Глава 17. Метапрограммы Глава 18. Шаблоны выражений 31 43 57 65 83 111 117 119 143 165 193 205 231 255 257 273 311 325 347 Оглавление Часть 1У. Нетрадиционное использование шаблонов Глава 19.
Классификация типов Глава 20. Интеллектуальные указатели Глава 21. Кортежи Глава 22. Объекты-функции и обратные вызовы Приложение А. Правило одного определения Приложение Б. Разрешение перегрузки / Библиография Глоссарий Предметный указатель 369 371 387 417 437 493 505 517 521 532 Содержание 17 18 21 Часть |. Основы Зачем нужны шаблоны 29 29 43 Предисловие Благодарности Глава 1. Об этой книге 1.1. Что необходимо знать, приступая к чтению этой книги 1.2. Структура книги в целом 1.3. Как читать эту книгу 1.4. Некоторые замечания о стиле программирования 1.5.
Стандарт и практика 1.6. Примеры кода и дополнительная информация 1.7. Обратная связь с авторами Глава 2. Шаблоны функций 2.1. Первое знакомство с шаблонами функций 2.1.1. Определение шаблона 2.1.2. Использование шаблонов 2.2. Вывод аргументов 2.3. Параметры шаблонов 2.4. Перегрузка шаблонов функций 2.5. Резюме Глава 3. Шаблоны классов 3.1. Реализация шаблона класса Васк 3.1.1. Объявление шаблонов классов 3.1.2.
Реализация функций-членов 3.2. Использование шаблона класса Згаск 3.3. Специализации шаблонов класса 3.4. Частичная специализация 3.5. Аргументы шаблона, задаваемые по умолчанию 3.6. Резюме 22 22 23 24 26 26 26 31 31 31 32 34 35 37 42 43 44 45 47 49 51 52 54 Содержание 57 61 62 63 65 65 67 68 72 78 79 82 функций 83 111 111 112 113 Глава 4. Параметры шаблонов, не являющиеся типами 4.1. Параметры шаблонов классов, не являющиеся типами 4.2. Параметры шаблонов функций, не являющиеся типами 4.3. Ограничения на параметры шаблонов, не являющиеся типами 4.4.
Резюме Глава 5. Основы работы с шаблонами 5.1. Ключевое слово гурепаше 5.2. Использование йз1з-> 5.3. Шаблоны-члены классов 5.4. Шаблонные параметры шаблонов 5.5. Инициализация нулем 5.6. Использование строковых литералов в качестве аргументов шаблонов 5.7. Резюме Глава 6. Применение шаблонов на практике 6.1. Модель включения 6.1.1. Ошибки при компоновке 6.1.2. Шаблоны в заголовочных файлах 6.2. Явное инстанцирование 6.2.1. Пример явного инстанцирования шаблона 6.2.2. Сочетание модели включения и явного инстанцирования 6.3. Модель разделения 6.3.1.
Ключевое слово ехроп 6.32. Ограничения модели разделения 6.3.3. Составление программы для модели разделения 6.4. Шаблоны и ш1ше 6.5. Предварительно откомпилированные заголовочные файлы 6.6. Отладка шаблонов 6.6.1. Дешифровка ошибок-романов 6.6.2.
Мелкое инстанцирование 6.6.3. Длинные имена 6.6.4. Трассировщики 6.6.5. Интеллектуальные трассировщики 6.6.6. Прототипы 6.7. Заключение 6.8. Резюме Глава 7. Основные термины в области шаблонов 7.1. "Шаблон класса" илн "шаблонный класс" 7.2. Инстанцирование и специализация 7.3. Объявления и определения 83 83 85 87 87 88 89 90 92 93 94 95 98 98 100 103 103 107 108 108 109 Содержание 114 114 117 119 Глава 9.
Имена в шаблонах 7.4. Правило одного определения 7.5. Аргументы и параметры шаблонов Часть 11. Углубленное изучение шаблонов Глава 8. Вглубь шаблонов 8.1. Параметризованные объявления 8.1.1. Виртуальные функции-члены 8.1.2. Связывание шаблонов 8.1.3. Первичные шаблоны 8.2. Параметры шаблонов 8.2.1. Параметры типа 8.2.2. Параметры, не являющиеся типами 8.2.3. Шаблонные параметры шаблона 8.2.4. Аргументы шаблона, задаваемые по умолчанию 8.3. Аргументы шаблонов 8.3.1. Аргументы шаблонов функций 8.3.2. Аргументы типов 8.3.3. Аргументы, не являющиеся типами 8.3.4.
Шаблонные аргументы шаблонов 8.3.5. Эквивалентность 8.4. Друзья 8.4.1. Дружественные функции 8.4.2. Дружественные шаблоны 8.5. Заключение 9.1. Систематизация имен 9.2, Поиск имен 9.2.1. Поиск, зависящий от аргументов 9.2.2. Внесение дружественных имен 9.2.3. Внесение имен классов 9.3. Синтаксический анализ шаблонов 9.3.1. Зависимость от контекста в нешаблонных конструкциях 9.3.2. Зависимые имена типов 9.3.3. Зависимые имена шаблонов 9.3.4. Зависимые имена в объявлениях еа!пб 9.3.5. АМ и явные аргументы шаблонов 9.4.
Наследование и шаблоны классов 9.4.1. Независимые базовые классы 9.4.2. Зависимые базовые классы 9.5. Заключение 119 122 122 124 124 125 125 126 127 128 129 132 133 135 137 138 138 141 142 143 143 145 147 149 150 151 152 154 156 158 159 160 160 161 164 10 Содержание 205 Глава 10. Инстанцированне 10.1. Инстанцирование по требованию 10.2. Отложенное инстанцирование 10.3. Модель инстанцирования С++ 10.3.1. Двухфазный поиск 10.3.2.
Точки инстанцирования 10.3.3. Модели включения и разделения 10.3.4. Поиск в единицах трансляции 10.3.5. Примеры 10.4. Схемы реализации 10.4.1. "Жадное" инстанцирование 10.4.2. Инстанцирование по запросу 10.4.3. Итеративное инстанцирование 10.5. Явное инстанцирование 10.6. Заключение Глава 11. Вывод аргументов шаблонов 11.1. Процесс вывода 11.2. Выводимый контекст 11.3. Особые ситуации вывода 11.4. Допустимые преобразования аргументов 11.5. Параметры шаблона класса 11.6.
Аргументы функции по умолчанию 11.7. Метод Бартона-Нэкмана 11.8. Заключение Глава 12. Специализация и перегрузка 12.1. Когда обобщенный код не совсем хорош 12.1.1. Прозрачная настройка 12.1.2. Семантическая прозрачность 12.2. Перегрузка шаблонов функций 12.2.1. Сигнатуры 12.2.2. Частичное упорядочение перегруженных шаблонов функций 12.2.3. Правила формального упорядочения 12.2.4. Шаблоны и нешаблоны 12.3.
Характеристики
Тип файла DJVU
Этот формат был создан для хранения отсканированных страниц книг в большом количестве. DJVU отлично справился с поставленной задачей, но увеличение места на всех устройствах позволили использовать вместо этого формата всё тот же PDF, хоть PDF занимает заметно больше места.
Даже здесь на студизбе мы конвертируем все файлы DJVU в PDF, чтобы Вам не пришлось думать о том, какой программой открыть ту или иную книгу.