R
Red
Пользователь
- Регистрация
- 24.06.19
- Сообщения
- 18,540
- Реакции
- 102,650
- #1
Голосов: 0
Наверняка вы знакомы с таким литературным приемом, как "роман в романе". Но это встречается не только в литературе, но и в программировании. Шаблоны в 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++ для обобщенного программирования ++ Изучение наиболее эффективных современных идиом и методов программирования ++ Предварительное знакомство с возможностями концептов в шаблонном программировании Файлы примеров кода и обновления находятся на веб-сайте книги tmplbook.com. Дэвид Вандевурд — вице-президент Edison Design Group, Inc., автор ключевых возможностей компилятора C++ этой компании. Будучи соучредителем известного форума comp.lang.c++.moderated, он также играет активную роль в стандартизации языка C++. Вандевурд имеет ученые степени в области компьютерных наук в Политехническом институте Ренсселаера и Свободном университете Брюсселя. Он занимается разработкой алгоритмов и преподаванием. Николаи Джосаттис — независимый системный архитектор, технический менеджер, консультант и преподаватель, более 20 лет активно участвующий в стандартизации C++. В рабочей группе, занимающейся стандартизацией библиотеки, он всегда заботится об интересах обычных прикладных программистов. Джосаттис хорошо известен в сообществе программистов C++, в частности как автор книги Стандартная библиотека C++ (пер. с англ, ИД "Вильямс", 2014 г.) и других тематических руководств. Дуглас Грегор — старший разработчик компилятора, работающий в области проектирования библиотек C++. Будучи одним из первых участников проекта Boost, он разработал несколько библиотек, которые позже стали частью стандарта C++. Кроме того, Грегор привел реализацию компилятора C++ с открытым исходным кодом Clang в соответствие со стандартом C++11 и был активным участником процесса стандартизации C++11. Он имеет ученую степень в области компьютерных наук Политехнического института Ренсселаера.
Подробнее:
Скачать:
Похожие темы
- [destiny.ie] Destiny Elements for Breakdance Website Builder - более 20 доп виджетов для конструктора Breakdance (2022)
- [В. Севостьянов, А. Бурылов] [Слёрм] [Slurm] Apache Kafka для разработчиков (2022)
- Internet Download Manager v6.40 Build 2 Final
- Tennis Manager (2021)
- [sky.pro] [skyeng] Excel для анализа данных (2021)
- HypeText - Animated Text & Intro Maker
- [Дмитрий Г., Наумченко Н., Коняхин Е, Наземнов Г.] [Rebrain] [Fevlake] Golang-разработчик Basic (2021)
- [Game] Mass Effect Legendary Edition (2020)
- [Game] Days Gone (2021)
- [Root] Программа для абуза «Nvuti» (2021)