C++17 in Detail — Bartłomiej Filipek — обложка книги
338 страниц
C++
PDF
4.5

C++17 in Detail

Глубокое погружение в возможности C++17

Автор:

Год:

Краткое содержимое:

Введение

Книга «C++17 in Detail» авторства Бартломея Филипека (Bartłomiej Filipek) вышла в 2019 году и мгновенно стала одним из самых авторитетных источников по новому стандарту C++17. Это не очередной учебник для начинающих — это глубокое техническое руководство, которое поможет разработчикам со средним и продвинутым уровнем освоить все ключевые возможности стандарта C++17 и научиться применять их на практике. Книга содержит 338 страниц концентрированной информации, подкреплённой примерами кода и практическими советами.

О чём эта книга?

«C++17 in Detail» посвящена детальному разбору нововведений, которые принёс стандарт C++17. Автор последовательно рассматривает каждую фичу, начиная с языка и заканчивая стандартной библиотекой. В книге вы найдёте:

  • Структурированные привязки (structured bindings) — как распаковывать кортежи, пары и структуры в отдельные переменные.
  • if constexpr — компиляция условных веток во время компиляции, что позволяет писать более эффективный и чистый шаблонный код.
  • std::optional, std::variant, std::any — новые типы-обёртки для безопасной работы с опциональными значениями, альтернативами и динамическими типами.
  • string_view — невладеющее представление строки, ускоряющее работу с подстроками без копирования.
  • Параллельные алгоритмы — стандартная библиотека теперь поддерживает параллельное выполнение алгоритмов (std::execution::par).
  • Файловая система (std::filesystem) — кроссплатформенная работа с файлами и директориями.
  • Улучшения в constexpr — теперь можно писать constexpr-функции с циклами, ветвлениями и даже динамическим выделением памяти (ограниченно).
  • Новые атрибуты — [[fallthrough]], [[maybe_unused]], [[nodiscard]] и другие.
  • Упрощение шаблонов — deduction guides, auto в шаблонных параметрах, fold expressions.

Каждая глава построена по принципу «от теории к практике»: сначала объясняется синтаксис и семантика, затем приводятся реальные примеры использования, а в конце — типичные ошибки и рекомендации.

Для кого эта книга?

Книга рассчитана на программистов, которые уже имеют опыт работы с C++ (хотя бы на уровне C++11/14) и хотят быстро и качественно освоить C++17. Она будет полезна:

  • Разработчикам, переходящим с более старых стандартов на C++17.
  • Инженерам, которые пишут высоконагруженные или встраиваемые системы и хотят использовать новые возможности для оптимизации.
  • Преподавателям и студентам старших курсов, изучающим современный C++.
  • Всем, кто хочет писать более безопасный, выразительный и эффективный код.

Начинающим программистам книга не подойдёт — для понимания материала требуется уверенное знание основ C++ (указатели, шаблоны, STL).

Что узнает читатель?

После прочтения книги вы сможете:

  • Уверенно использовать все основные нововведения C++17 в повседневной работе.
  • Писать более чистый и лаконичный код с помощью структурированных привязок и if constexpr.
  • Применять std::optional и std::variant для безопасной обработки ошибок и альтернативных состояний.
  • Работать с файловой системой без внешних библиотек.
  • Ускорять алгоритмы с помощью параллельных версий из STL.
  • Понимать внутренние механизмы новых типов и уметь избегать подводных камней.
  • Готовиться к переходу на C++20, так как многие фичи C++17 являются фундаментом для будущих стандартов.

Сильные стороны книги

1. Глубина и структура. Автор не просто перечисляет фичи, а объясняет, зачем они были добавлены, какие проблемы решают и как их правильно применять. Каждая глава содержит раздел «Common pitfalls» (типичные ошибки), что очень ценно для практикующего разработчика.

2. Практическая направленность. Все примеры кода компилируются и работают. Книга содержит множество небольших, но законченных фрагментов, которые можно сразу опробовать в своём проекте.

3. Актуальность. Несмотря на выход C++20 и C++23, C++17 остаётся самым распространённым стандартом в индустрии (особенно в консервативных проектах). Книга не устарела и будет полезна ещё несколько лет.

4. Ясный язык. Бартломей Филипек пишет чётко, без лишней воды. Технические детали изложены доступно, но без упрощений.

5. Качество примеров. Код хорошо отформатирован, снабжён комментариями и часто сравнивается с эквивалентным кодом на C++14, чтобы читатель видел разницу.

Кому рекомендуется?

Я рекомендую эту книгу всем C++-разработчикам, которые хотят быть в курсе современного стандарта и писать код, который легко поддерживать и расширять. Особенно она будет полезна тем, кто работает в командах, где кодовая база застряла на C++11/14, и нужно аргументированно переходить на C++17. Книга также отлично подойдёт для самостоятельного изучения: её можно читать последовательно или использовать как справочник по конкретным темам.

Если вы уже знакомы с основами C++ и хотите поднять свой уровень на новую ступень — «C++17 in Detail» станет отличным выбором. Это не просто книга, а полноценный инструмент для профессионального роста.

Рекомендаций