Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Разработка приложений на C++ с использованием Boost: рецепты, упрощающие разработку вашего приложения

Покупка
Артикул: 751481.01.99
Доступ онлайн
999 ₽
В корзину
Если вы хотите воспользоваться преимуществами Boost и языка C++ и не путаться, какую библиотеку в какой ситуации использовать, тогда эта книга для вас! Начиная с основ, вы перейдете к изучению того, как библиотеки Boost упрощают разработку приложений. Увидите, какую работу можно выполнить во время компиляции и на что способны контейнеры Boost. Научитесь разрабатывать качественные, быстрые и портативные приложения. От манипулирования изображениями до графов, каталогов, таймеров, файлов и работы в сети - каждый найдет для себя интересную тему. Напишите программу один раз и используйте ее в операционных системах Linux, Windows, macOS и Android. Обратите внимание, что знания, полученные в ходе прочтения этой книги, не устареют, поскольку все больше и больше библиотек Boost становятся частью стандарта C++. Эта книга предназначена для разработчиков, стремящихся улучшить свои знания о Boost, и тех, кто хочет упростить процесс разработки приложений. Предполагается, что читатель знаком с C++ и имеет базовые знания стандартной библиотеки.
Полухин, А. Разработка приложений на C++ с использованием Boost: рецепты, упрощающие разработку вашего приложения / Антон Полухин ; пер. с анг. Д. А. Беликова. - Москва : ДМК Пресс, 2020. - 346 с. - ISBN 978-5-97060-868-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/1225374 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Антон Полухин

Разработка приложений 
на C++ с использованием 
Boost

Рецепты, упрощающие разработку вашего 
приложения

Boost C++ Application 
Development Cookbook

Recipes to simplify 
your application development

Antony Polukhin

Разработка приложений 
на C++ с использованием 
Boost

Рецепты, упрощающие разработку

вашего приложения

Антон Полухин

Москва, 2020

УДК  004.4
ББК  32.973.202
П49

Антон Полухин
П49 Разработка приложений на C++ с использованием Boost. Рецепты, упрощающие разработку вашего приложения / пер. с анг. Д. А. Беликова. – 
М.: ДМК Пресс, 2020. – 346 с.: ил.

ISBN 978-5-97060-868-5

Это руководство знакомит читателя с библиотеками Boost, которые помогают разрабатывать качественные, быстрые и портативные приложения. Удобная 
структура книги, включающая ряд стандартных разделов, упрощает изучение 
материала. От простых тем (повседневное использование библиотек, управление 
ресурсами) автор последовательно переходит к сложным (метапрограммирование, многопоточность, межпроцессное взаимодействие, асинхронное взаимодействие, работа с большими библиотеками Boost).
Издание предназначено для разработчиков, желающих улучшить свои знания 
в области Boost и упростить процессы разработки приложений. Для освоения 
изложенных в книге приемов необходимы знакомство с C++ и базовые знания 
стандартной библиотеки. Также понадобятся современный компилятор C++, библиотеки Boost (подойдет любая версия, но рекомендуется 1.65 или более новая), 
среда разработки QtCreator, утилита qmake. Есть возможность модифицировать 
и запускать примеры онлайн: http://apolukhin.github.io/Boost-Cookbook/.

УДК 004.4
ББК 32.973.202

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or 
transmitted in any form or by any means, without the prior written permission of the publisher, 
except in the case of brief quotations embedded in critical articles or reviews.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

©  2017 Packt Publishing
© Оформление, издание, перевод, ДМК Пресс, 2020
ISBN  (анг.) 978-1-78728-224-7
ISBN  (рус.) 978-5-97060-868-5

Оглавление

Предисловие от издательства ...................................................................20
Об авторе ...........................................................................................................21
О рецензентах .................................................................................................22
Вступительное слово автора .....................................................................23
Вступительное слово от сообщества С++ .............................................24
Предисловие .............................................................................................. 25

Глава 1. Приступаем к написанию приложения .................................29
Вступление ............................................................................................................29
Получение параметров конфигурации ...............................................................30

Подготовка ........................................................................................................30
Как это делается… .............................................................................................30
Как это работает................................................................................................31
Дополнительно... ..............................................................................................31
См. также ...........................................................................................................33

Сохранение любого значения в контейнере или переменной ..........................33

Подготовка ........................................................................................................34
Как это делается... .............................................................................................34
Как это работает................................................................................................34
Дополнительно... ..............................................................................................35
См. также ...........................................................................................................36

Хранение одного из нескольких выбранных типов в контейнере  
или переменной....................................................................................................36

Подготовка… .....................................................................................................36
Как это делается… .............................................................................................36
Как это работает................................................................................................37
Дополнительно... ..............................................................................................37
См. также ...........................................................................................................38

Использование более безопасного способа работы с контейнером,  
в котором хранится один из нескольких выбранных типов .............................38

Подготовка ........................................................................................................40
Как это делается... .............................................................................................40
Как это работает................................................................................................41
Дополнительно... ..............................................................................................41
См. также ...........................................................................................................42

Возврат значения или флага «значения нет» .....................................................42

Подготовка ........................................................................................................42
Как это делается... .............................................................................................42
Как это работает….............................................................................................43
Дополнительно… ..............................................................................................44
См. также ...........................................................................................................44

Возвращение массива из функции ......................................................................44

Подготовка ........................................................................................................44
Как это делается… .............................................................................................44
Как это работает….............................................................................................45
Дополнительно… ..............................................................................................45
См. также ...........................................................................................................46

Объединение нескольких значений в одно ........................................................46

Подготовка ........................................................................................................46
Как это делается… .............................................................................................46
Как это работает….............................................................................................48
Дополнительно… ..............................................................................................48
См. также ...........................................................................................................48

Привязка и переупорядочение параметров функции .......................................49

Подготовка ........................................................................................................49
Как это делается... .............................................................................................49
Как это работает….............................................................................................50
Дополнительно… ..............................................................................................51
См. также ...........................................................................................................52

Получение удобочитаемого имени типа ............................................................52

Подготовка ........................................................................................................52
Как это делается… .............................................................................................52
Как это работает….............................................................................................53
Дополнительно… ..............................................................................................53
См. также ...........................................................................................................54

Использование эмуляции перемещения C++11 .................................................54

Подготовка ........................................................................................................54
Как это делается… .............................................................................................54
Как это работает….............................................................................................56
Дополнительно… ..............................................................................................56
См. также ...........................................................................................................56

Создание некопируемого класса .........................................................................57

Подготовка ........................................................................................................57
Как это делается… .............................................................................................57
Как это работает….............................................................................................58
См. также ...........................................................................................................58

Создание некопируемого, но перемещаемого класса .......................................58

Подготовка ........................................................................................................59
Как это делается… .............................................................................................59
Как это работает….............................................................................................61
Дополнительно… ..............................................................................................61
См. также ...........................................................................................................62

6  Оглавление

Использование алгоритмов C++14 и C++11 ........................................................62

Подготовка ........................................................................................................62
Как это делается… .............................................................................................63
Как это работает….............................................................................................63
Дополнительно… ..............................................................................................63
См. также ...........................................................................................................64

Глава 2. Управление ресурсами ................................................................65
Вступление ............................................................................................................65
Управление указателями на классы, которые не покидают  
область видимости ...............................................................................................65

Подготовка ........................................................................................................66
Как это делается… .............................................................................................66
Как это работает….............................................................................................67
Дополнительно… ..............................................................................................68
См. также ...........................................................................................................69

Подсчет указателей на классы .............................................................................69

Подготовка ........................................................................................................69
Как это делается… .............................................................................................70
Как это работает….............................................................................................70
Дополнительно… ..............................................................................................71
См. также ...........................................................................................................72

Управление указателями на массивы, которые не покидают 
область видимости ...............................................................................................72

Подготовка ........................................................................................................72
Как это делается… .............................................................................................73
Как это работает….............................................................................................73
Дополнительно… ..............................................................................................73
См. также ...........................................................................................................74

Подсчет указателей на массивы ..........................................................................74

Подготовка ........................................................................................................75
Как это делается… .............................................................................................75
Как это работает….............................................................................................77
Дополнительно… ..............................................................................................77
См. также ...........................................................................................................77

Хранение любых функциональных объектов в переменной ............................78

Подготовка ........................................................................................................78
Как это делается… .............................................................................................78
Как это работает….............................................................................................79
Дополнительно… ..............................................................................................79
См. также ...........................................................................................................80

Передача указателя на функцию .........................................................................80

Подготовка ........................................................................................................80
Как это делается… .............................................................................................80
Как это работает….............................................................................................80
Дополнительно… ..............................................................................................80
См. также ...........................................................................................................81

Оглавление  7

Хранение любых лямбда-функций C++11 в переменной ..................................81

Подготовка ........................................................................................................81
Как это делается… .............................................................................................81
Дополнительно… ..............................................................................................81
См.также ............................................................................................................82

Контейнеры указателей .......................................................................................82

Подготовка ........................................................................................................84
Как это делается… .............................................................................................84
Как это работает….............................................................................................84
Дополнительно… ..............................................................................................84
См. также ...........................................................................................................85

Делайте это при выходе из области видимости! ................................................86

Подготовка ........................................................................................................86
Как это делается… .............................................................................................86
Как это работает….............................................................................................87
Дополнительно… ..............................................................................................87
См. также ...........................................................................................................88

Инициализация базового класса членом класса-наследника ...........................88

Подготовка ........................................................................................................89
Как это делается… .............................................................................................89
Как это работает….............................................................................................89
Дополнительно… ..............................................................................................90
См. также ...........................................................................................................90

Глава 3. Преобразование и приведение ...............................................91
Вступление ............................................................................................................91
Преобразование строк в числа ............................................................................91

Подготовка ........................................................................................................92
Как это делается… .............................................................................................92
Как это работает….............................................................................................92
Дополнительно… ..............................................................................................93
См. также ...........................................................................................................94

Преобразование чисел в строки ..........................................................................94

Подготовка ........................................................................................................94
Как это делается… .............................................................................................94
Как это работает….............................................................................................95
Дополнительно… ..............................................................................................95
См. также ...........................................................................................................96

Преобразование чисел в числа ............................................................................96

Подготовка ........................................................................................................97
Как это делается… .............................................................................................97
Как это работает….............................................................................................98
Дополнительно… ..............................................................................................98
См. также ...........................................................................................................99

Преобразование пользовательских типов в строки и из строк .........................99

Как это делается… .............................................................................................99
Дополнительно… ............................................................................................101
См. также .........................................................................................................101

8  Оглавление

Приведение умных указателей ..........................................................................102

Подготовка ......................................................................................................102
Как это делается… ...........................................................................................102
Как это работает…...........................................................................................103
Дополнительно… ............................................................................................103
См. также .........................................................................................................103

Приведение полиморфных объектов ................................................................103

Подготовка ......................................................................................................104
Как это делается… ...........................................................................................104
Как это работает…...........................................................................................104
Дополнительно… ............................................................................................104
См. также .........................................................................................................105

Синтаксический анализ (parsing) простого ввода ............................................105

Подготовка ......................................................................................................106
Как это делается… ...........................................................................................106
Как это работает…...........................................................................................107
Дополнительно… ............................................................................................108
См. также .........................................................................................................110

Синтаксический анализ (parsing) сложного ввода ...........................................110

Подготовка ......................................................................................................110
Как это делается… ...........................................................................................110
Как это работает…. .........................................................................................113
Дополнительно… ............................................................................................114
См. также .........................................................................................................114

Глава 4. Уловки времени компиляции .................................................115
Вступление ..........................................................................................................115
Проверка размеров во время компиляции .......................................................115

Подготовка ......................................................................................................116
Как это делается… ...........................................................................................116
Как это работает…...........................................................................................116
Дополнительно… ............................................................................................118
См. также .........................................................................................................119

Активация использования шаблона функции для интегральных типов .......120

Подготовка ......................................................................................................120
Как это делается… ...........................................................................................120
Как это работает…...........................................................................................121
Дополнительно… ............................................................................................122
См. также .........................................................................................................123

Отключение использования шаблона функции для действительных типов ....123

Подготовка ......................................................................................................124
Как это делается… ...........................................................................................124
Как это работает…...........................................................................................124
Дополнительно… ............................................................................................125
См. также .........................................................................................................125

Создание типа из числа ......................................................................................125

Подготовка ......................................................................................................126

Оглавление  9

Как это делается… ...........................................................................................126
Как это работает…...........................................................................................127
Дополнительно… ............................................................................................127
См. также .........................................................................................................128

Реализация свойства типов (type trait) .............................................................128

Подготовка ......................................................................................................128
Как это делается… ...........................................................................................128
Как это работает…...........................................................................................128
Дополнительно… ............................................................................................129
См. также .........................................................................................................129

Выбор оптимального оператора для параметра шаблона ...............................129

Подготовка ......................................................................................................130
Как это делается... ...........................................................................................130
Как это работает…...........................................................................................131
Дополнительно… ............................................................................................131
См. также .........................................................................................................133

Получение типа выражения в C++03 .................................................................133

Подготовка ......................................................................................................133
Как это делается… ...........................................................................................133
Как это работает…...........................................................................................134
Дополнительно… ............................................................................................134
См. также .........................................................................................................135

Глава 5. Многопоточность .........................................................................137
Вступление ..........................................................................................................137
Создание потока выполнения ...........................................................................137

Подготовка ......................................................................................................138
Как это делается… ...........................................................................................138
Как это работает…...........................................................................................138
Дополнительно… ............................................................................................139
См. также .........................................................................................................141

Синхронизация доступа к общему ресурсу ......................................................141

Подготовка ......................................................................................................142
Как это делается… ...........................................................................................142
Как это работает…...........................................................................................143
Дополнительно… ............................................................................................144
См. также .........................................................................................................145

Быстрый доступ к общему ресурсу с использованием  
атомарных операций .........................................................................................145

Подготовка ......................................................................................................145
Как это делается... ...........................................................................................146
Как это работает..............................................................................................146
Дополнительно… ............................................................................................147
См. также .........................................................................................................148

Создание класса work_queue ..............................................................................148

Подготовка ......................................................................................................148
Как это делается… ...........................................................................................148

10  Оглавление

Доступ онлайн
999 ₽
В корзину