C++. Сборник рецептов.
- Глава 1. Сборка приложений на C++ ⇢
- 1.0. Введение в сборку. ⇢
- Базовая терминология.
- IDE и системы сборки.
- Обзор инструментария.
- GNU Compiler Collection (GCC).
- Visual C++
- Intel.
- Metrowerks.
- Borland.
- Comeau.
- Digital Mars.
- Обзор IDE.
- Visual C++
- CodeWarrior.
- C++Builder.
- Dev-C++
- John, Paul, George, and Ringo.
- 1.1. Получение и установка GCC. ⇢
- Проблема.
- Решение.
- Windows.
- Unix.
- Обсуждение.
- Смотри также.
- 1.2. Сборка простого приложения «Hello, World» из командной строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.3. Сборка статической библиотеки из командной строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.4. Сборка динамической библиотеки из командной строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Видимость символов.
- Передача библиотек компоновщику.
- Библиотеки импорта и файлы определения модулей.
- Экспорт символов из DLL.
- Импорт символов из DLL.
- Сборка DLL с помощью GCC.
- Опция -fvisibility в GCC 4.0.
- Видимость символов в Metrowerks для Mac OS X.
- Опции командной строки.
- Смотри также.
- 1.5. Сборка сложного приложения из командной строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Поиск включенных заголовочных файлов.
- Передача библиотек компоновщику.
- Запуск вашего приложения.
- Смотри также.
- 1.6. Установка Boost.Build. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 1.7. Сборка простого приложения «Hello, World» с помощью Boost.Build. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.8. Сборка статической библиотеки с помощью Boost.Build. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.9. Сборка динамической библиотеки с помощью Boost.Build. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.10. Сборка сложного приложения с помощью BoostBuild. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Цели библиотек.
- Установка.
- Организация проекта.
- Смотри также.
- 1.11. Сборка статической библиотеки с помощью IDE. ⇢
- Проблема.
- Решение.
- Обсуждение.
- CodeWarrior.
- C++Builder.
- Dev-C++
- Смотри также.
- 1.12. Сборка динамической библиотеки с помощью IDE. ⇢
- Проблема.
- Решение.
- Обсуждение.
- CodeWarrior.
- C++Builder.
- Dev-C++
- Смотри также.
- 1.13. Сборка сложного приложения с помощью IDE. ⇢
- Проблема.
- Решение.
- Обсуждение.
- CodeWarrior.
- C++Builder.
- Dev-C++
- Смотри также.
- 1.14. Получение GNU make. ⇢
- Проблема.
- Решение.
- Windows.
- Unix.
- Обсуждение.
- Смотри также.
- 1.15. Сборка простого приложения «Hello, World» с помощью GNU make. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Переменные make.
- Неявные правила.
- Возможности для настройки.
- VPATH и директива vpath.
- Смотри также.
- 1.16. Сборка статической библиотеки с помощью GNU Make. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.17. Сборка динамической библиотеки с помощью GNU Make. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.18. Сборка сложного приложения с помощью GNU make. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.19. Определение макроса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.20. Указание опций командной строки из IDE. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 1.21. Создание отладочной сборки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.22. Создание окончательной сборки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.23. Указание варианта библиотеки времени выполнения. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.24. Включение строгого соответствия стандарту C++ ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.25. Указание определенной библиотеки для автоматической компоновки с исходным файлом. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 1.26. Использование экспортируемых шаблонов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- Глава 2. Организация кода. ⇢
- 2.0. Введение. ⇢
- 2.1. Обеспечение единственности подключения заголовочного файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 2.2. Обеспечение единственности экземпляра переменной при большом количестве исходных файлов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 2.3. Снижение числа #include с помощью предварительного объявления классов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 2.4. Предотвращение конфликта имен с помощью пространств имен. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 2.5. Включение встраиваемого файла. ⇢
- Проблема.
- Решение.
- Глава 3. Числа. ⇢
- 3.0. Введение. ⇢
- 3.1. Преобразование строки в числовой тип. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 3.2. Преобразование чисел в строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 3.3. Проверка, содержит ли строка допустимое число. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 3.4. Сравнение чисел с плавающей точкой с ограниченной точностью. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 3.5. Лексический анализ строки, содержащей число в экспоненциальной форме. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 3.6. Преобразования между числовыми типами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 3.7. Получение минимального и максимального значений числового типа. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 4. Строки и текст. ⇢
- 4.0. Введение. ⇢
- 4.1. Дополнение строк. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.2. Обрезка строк. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.3. Хранение строк в последовательности. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.4. Получение длины строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.5. Обращение строк. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.6. Разделение строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.7. Разбиение строки на лексемы. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.8. Объединение нескольких строк. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.9. Поиск в строках. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.10. Поиск n-го вхождения подстроки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.11. Удаление подстроки из строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.12. Преобразование строки к нижнему или верхнему регистру. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.13. Выполнение сравнения строк без учета регистра. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.14. Выполнение поиска строк без учета регистра. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.15. Преобразование между табуляциями и пробелами в текстовых файлах. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.16. Перенос строк в текстовом файле. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.17. Подсчет числа символов, слов и строк в текстовом файле. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.18. Подсчет вхождений каждого слова в текстовом файле. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.19. Добавление полей в текстовый файл. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.20. Выравнивание текста в текстовом файле. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.21. Замена в текстовом файле последовательностей пробелов на один пробел. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.22. Автозамена текста при изменении буфера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 4.23. Чтение текстового файла с разделителями-запятыми. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 4.24. Использование регулярных выражений для разделения строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 5. Даты и время. ⇢
- 5.0. Введение. ⇢
- 5.1. Получение текущей даты и времени. ⇢
- Проблема.
- Григорианский календарь и високосные годы.
- Решение.
- Обсуждение.
- Ошибка 2038 года.
- 5.2. Форматирование даты/времени в виде строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 5.3. Выполнение вычислений с датами и временем. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 5.4. Преобразование между часовыми поясами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 5.5. Определение номера дня в году. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 5.6. Определение ограниченных типов значений. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 6. Управление данными с помощью контейнеров. ⇢
- 6.0. Введение. ⇢
- 6.1. Использование vector вместо массивов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 6.2. Эффективное использование vector. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Как работает vector.
- Оптимизация производительности vector.
- 6.3. Копирование вектора. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 6.4. Хранение указателей в векторе. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 6.5. Хранение объектов в списке. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 6.6. Отображение строк на другие объекты. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 6.7. Использование хеш-контейнеров. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 6.8. Хранение объектов в упорядоченном виде. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 6.9. Хранение контейнеров в контейнерах. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 7. Алгоритмы. ⇢
- 7.0. Введение. ⇢
- 7.1. Перебор элементов контейнера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Использование итераторов.
- Категории итераторов.
- Смотри также.
- 7.2. Удаление объектов из контейнера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.3. Случайное перемешивание данных. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 7.4. Сравнение диапазонов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.5. Объединение данных. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 7.6. Сортировка диапазона. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.7. Разделение диапазона. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.8. Выполнение для последовательностей операций над множествами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.9. Преобразование элементов последовательности. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.10. Написание собственного алгоритма. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 7.11. Печать диапазона в поток. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 8. Классы. ⇢
- 8.0. Введение. ⇢
- 8.1. Инициализация переменных-членов класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.2. Использование функции для создания объектов (шаблон фабрики). ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.3. Использование конструкторов и деструкторов для управления ресурсами (RAII). ⇢
- Проблема.
- Решение.
- Обсуждение.
- 8.4. Автоматическое добавление новых экземпляров класса в контейнер. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.5. Гарантия единственности копии переменной-члена. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 8.6. Определение типа объекта во время выполнения. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.7. Определение, является ли класс объекта подклассом другого класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.8. Присвоение каждому экземпляру класса уникального идентификатора. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.9. Создание Singleton-класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.10. Создание интерфейса с помощью абстрактного базового класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 8.11. Написание шаблона класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.12. Написание шаблона метода класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.13. Перегрузка операторов инкремента и декремента. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.14. Перегрузка арифметических операторов и операторов присвоения для работы с классами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 8.15. Вызов виртуальной функции родительского класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 9. Исключения и безопасность. ⇢
- 9.0. Введение. ⇢
- 9.1. Создание класса исключения. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 9.2. Создание безопасного при исключениях конструктора. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 9.3. Создание безопасного при исключениях списка инициализации. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 9.4. Создание безопасных при исключениях функций-членов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 9.5. Безопасное копирование объекта. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- Глава 10. Потоки и файлы. ⇢
- 10.0. Введение. ⇢
- 10.1. Вывод выровненного текста. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.2. Форматирование вывода чисел с плавающей точкой. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.3. Написание своих собственных манипуляторов потока. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 10.4. Создание класса, записываемого в поток. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.5. Создание класса, считываемого из потока. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.6. Получение информации о файле. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 10.7. Копирование файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 10.8. Удаление или переименование файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.9. Создание временного имени файла и временного файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 10.10. Создание каталога. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.11. Удаление каталога. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.12. Чтение содержимого каталога. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.13. Извлечение расширения файла из строки. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.14. Извлечение имени файла из полного пути. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.15. Извлечение пути из полного имени файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.16. Замена расширения файла. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 10.17. Объединение двух путей в один. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- Глава 11. Наука и математика. ⇢
- 11.0. Введение. ⇢
- 11.1. Подсчет количества элементов в контейнере. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.2. Поиск наибольшего или наименьшего значения в контейнере. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Функторы.
- 11.3. Вычисление суммы и среднего значения элементов контейнера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Итераторы istream_iterator и ostream_iterator.
- 11.4. Фильтрация значений, выпадающих из заданного диапазона. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.5. Вычисление дисперсии, стандартного отклонения и других статистических функций. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.6. Генерация случайных чисел. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.7. Инициализация контейнера случайными числами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.8. Представление динамического числового вектора. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.9. Представление числового вектора фиксированного размера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Что означает имя «self», введенное оператором typedef?
- 11.10. Вычисление скалярного произведения. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.11. Вычисление нормы вектора. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.12. Вычисление расстояния между векторами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.13. Реализация итератора с шагом. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.14. Реализация динамической матрицы. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.15. Реализация статической матрицы. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.16. Умножение матриц. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.17. Вычисление быстрого преобразования Фурье. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.18. Работа с полярными координатами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 11.19. Выполнение операций с битовыми наборами. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.20. Представление больших чисел фиксированного размера. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 11.21. Реализация чисел с фиксированной точкой. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 12. Многопоточная обработка. ⇢
- 12.0. Введение. ⇢
- 12.1. Создание потока. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 12.2. Обеспечение потокозащищенности ресурсов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Использование мьютексов.
- Опасности.
- 12.3. Уведомление одного потока другим. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 12.4. Однократная инициализация совместно используемых ресурсов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 12.5. Передача аргумента функции потока. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 13. Интернационализация. ⇢
- 13.0. Введение. ⇢
- 13.1. Жесткое кодирование строк в коде Unicode. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 13.2. Запись и чтение чисел. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 13.3. Запись и чтение дат и времен. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 13.4. Запись и чтение денежных значений. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 13.5. Сортировка локализованных строк. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 14. XML. ⇢
- 14.0. Введение. ⇢
- 14.1. Синтаксический анализ простого документа XML. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.2. Работа со строками Xerces. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 14.3. Синтаксический анализ сложного документа XML. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.4. Манипулирование документом XML. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 14.5. Проверка документа XML на соответствие определению DTD. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.6. Проверка документа XML на соответствие схеме. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.7. Преобразование документа XML с помощью XSLT. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.8. Вычисление XPath-выражения. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Смотри также.
- 14.9. Применение XML для сохранения и восстановления набора объектов. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Глава 15. Разные функции. ⇢
- 15.0. Введение. ⇢
- 15.1. Применение указателей функций для их обратного вызова. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 15.2. Применение указателей для членов класса. ⇢
- Проблема.
- Решение.
- Обсуждение.
- См. также.
- 15.3. Обеспечение невозможности модификации аргумента в функции. ⇢
- Проблема.
- Решение.
- Обсуждение.
- См. также.
- 15.4. Обеспечение невозможности модификации своих объектов в функции-члене. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 15.5. Написание оператора, не являющегося функцией-членом. ⇢
- Проблема.
- Решение.
- Обсуждение.
- 15.6. Инициализация последовательности значениями, разделяемыми запятыми. ⇢
- Проблема.
- Решение.
- Обсуждение.
- Об авторах. ⇢
- Колофон. ⇢
- Примечания. ⇢
Д. Р. Стефенс, К. Диггинс, Д. Турканис, Д. Когсуэлл.