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

56 people are currently reading
174 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
25 (51%)
4 stars
21 (42%)
3 stars
2 (4%)
2 stars
1 (2%)
1 star
0 (0%)
Displaying 1 - 5 of 5 reviews
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 - 5 of 5 reviews

Can't find what you're looking for?

Get help and learn more about the design.