Jump to ratings and reviews
Rate this book

Шаблоны C++. Справочник разработчика

Rate this book
Наверняка вы знакомы с таким литературным приемом, как "роман в романе". Но это встречается не только в литературе, но и в программировании. Шаблоны в C++ - это, по сути, целый язык в языке (к тому же язык Тьюринг-полный), который достоин отдельных книг, и не просто книг - а шедевров. И это при том, что метапрограммирование - всего лишь одна из многих возможностей, предоставляемых программисту современными шаблонами C++. Одним из таких шедевров можно смело считать книгу, которую вы держите в руках. Несмотря на то что в заглавии скромно указано - "второе издание", это совершенно новая книга, отражающая тот факт, что за прошедшие со времени первого издания 15 лет произошло очень много изменений, и в первую очередь это кардинальные изменения самого языка C++, который стал еще более мощным орудием в руках программиста, позволяющим создавать существенно более производительные программы. Принятые со времени первого издания стандарты C++11, C++14 и C++17 не обошли стороной и шаблоны, сделав их еще более выразительным средством программирования, позволяющем создавать еще более эффективные (и эффектные с точки зрения эстетики программирования) программы. По сути, почти вся стандартная библиотека C++ построена на применении шаблонов. Авторы книги (которые не нуждаются в представлении) - Дэвид Вандевурд, Николаи Джосаттис и Дуглас Грегор - не зря потратили столько лет на работу над книгой.

Это книга, описывающая работу с шаблонами C++ от азов до самых "темных закутков", в которые вряд ли придется заглядывать при повседневной работе даже самым искушенным программистам, которая будет одинаково полезна как программисту, желающему повысить свой начальный уровень умений и понимания шаблонов, так и профессиональному разработчику сложнейших шаблонных библиотек. Основы работы с шаблонами, шаблоны с параметрами, не являющимися типами, вариативные шаблоны, вопросы передачи аргументов в шаблоны, метапрограммирование, специализация и перегрузка, вывод аргументов, полиморфизм и наследование шаблонов, шаблоны выражений и даже возможности работы с шаблонами, которые должны появиться в следующем после C++17 стандарте языка - вряд ли найдется такая связанная с шаблонами тема, о которой можно было бы сказать, что она слабо освещена в этой книге. Книга рекомендуется в первую очередь для профессиональных программистов в качестве справочного пособия, но она будет полезна программистам на C++ любого уровня - каждый найдет в ней важный и нужный материал для себя. Книга предполагает знание читателем современного языка программирования C++. Шаблоны представляют собой одну из наиболее сильных сторон C++, но они все еще остаются недостаточно используемыми, а зачастую и неверно понимаемыми, несмотря на постоянно растущий уровень как языка C++, так и сообщества программистов на этом языке. Во втором издании книги три автора, являющиеся экспертами в данной области, показывают, зачем, когда и как использовать современные шаблоны, чтобы создавать программное обеспечение, более понятное, быстрое, эффективное и легко поддерживаемое. Данное издание описывает новые возможности стандартов C++11, C++14 и C++17 и демонстрирует последние достижения в области шаблонов C++ для создания широкого спектра приложений. Авторы подробно объясняют все новые возможности языка, которые улучшают шаблоны или взаимодействие с ними, рассматривая такие темы, как вариативные шаблоны, обобщенные лямбда-выражения, вывод аргументов шаблонов классов, конструкцию if времени компиляции, передаваемые ссылки и пользовательские литералы. Они также глубоко вникают в фундаментальные концепции языка (такие как категории значений) и полностью охватывают стандартные свойства типов. Книга начинается с основательного учебника, описывающего основные концепции и связанные с ними возможности языка программирования. Остальная часть книги служит всеобъемлющим справочником, уделяющим внимание как подробностям языка, так и методам кодирования, продвинутым технологиям и сложным идиомам программирования шаблонов C++. Множество примеров исходных текстов иллюстрируют абстрактные концепции и наилучшие практические подходы для получения от шаблонов C++ максимальной пользы. ++ Точное понимание поведений шаблонов, позволяющее избежать распространенных ловушек

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

848 pages, Hardcover

First published January 1, 2013

53 people are currently reading
176 people want to read

About the author

David Vandevoorde

6 books7 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
27 (51%)
4 stars
21 (40%)
3 stars
2 (3%)
2 stars
2 (3%)
1 star
0 (0%)
Displaying 1 - 6 of 6 reviews
Profile Image for Alexander.
23 reviews
December 6, 2025
Very interesting and useful book. Even though on Goodreads the main author is listed as David Vandevoorde, this book has so many examples that it feels much closer to Nicolai M. Josuttis's style, yet he is mentioned only as a co-author.

The authors did a great job describing and demonstrating how templates work, why they matter, and where they can be used. All examples are filled with comments and additionally explained line by line after the code.

Even though I did not read the book to the end because I couldn't find enough time to practice all of the features myself, it still gave me lots of new knowledge. I can definitely recommend it to anyone who wants to become better at C++ templates.
4 reviews
October 5, 2019
Excellent and comprehensive. The second edition contains many interesting fragments regarding applications and of course a thorough and exhausting overview of their mechanism and form.
Profile Image for Benoit Blanchon.
Author 2 books7 followers
November 1, 2024
After reading it from cover to cover, I can say without hesitation that it's the best C++ I ever read.
Profile Image for shuohuan.
2 reviews
November 9, 2017
Although it's a bit late for the book being published since for modern C++ template constexpr has been introduced in C++11, which is around 6 years ago.
Nevertheless C++17 has added pieces to complete the whole picture(such as if constexpr, constexpr lambda, inline variable etc.)
Well written and explained in detail.
Displaying 1 - 6 of 6 reviews

Can't find what you're looking for?

Get help and learn more about the design.