Шаблони C++. Довідник розробника. 2-е видання
-
ISBN978-5-9500296-8-4
-
Видавництво
-
Автор
-
Рік2018
-
МоваРосійська
Все про “Шаблони C++. Довідник розробника. 2-е видання”
Від видавця
Напевно ви знайомі з таким літературним прийомом, як "роман у романі". Але це зустрічається не тільки в літературі, але і в програмуванні. Шаблони в 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. Він має вчений ступінь в області комп'ютерних наук Політехнічного інституту Ренсселаєра.
Зміст
Передмова 22
Про книгу 27
Частина I. Основи 35
Глава 1. Шаблони функцій 37
Глава 2. Шаблони класів 57
Глава 3. Нетипові параметри шаблонів 79
Глава 4. Варіативні шаблони 89
Глава 5. Основи роботи з шаблонами 101
Глава 6. Семантика переміщення і enable_if<> 125
Глава 7. За значенням або за посиланням? 141
Глава 8. Програмування часу компіляції 159
Глава 9. Застосування шаблонів на практиці 173
Глава 10. Основні терміни в області шаблонів 189
Глава 11. Узагальнені бібліотеки 197
Частина II. Поглиблене вивчення шаблонів 217
Глава 12. Вглиб шаблонів 219
Глава 13. Імена в шаблонах 261
Глава 14. Инстанцирование 293
Глава 15. Висновок аргументів шаблону 321
Розділ 16. Спеціалізація і перевантаження 379
Глава 17. Подальший розвиток 409
Частина III. Шаблони і проектування 425
Глава 18. Поліморфна міць шаблонів 427
Глава 19. Реалізація властивостей типів 443
Глава 20. Перевантаження властивостей типів 525
Глава 21. Шаблони і спадкування 551
Глава 22. Статичний і динамічний поліморфізм 581
Глава 23. Метапрограмування 593
Глава 24. Списки типів 613
Глава 25. Кортежі 637
Глава 26. Контрольовані об'єднання 665
Глава 27. Шаблони виразів 693
Глава 28. Налагодження шаблонів 715
Додаток А. Правило одного визначення 727
Додаток Б. Категорії значень 737
Додаток Ст. Дозвіл перевантаження 745
Додаток Р. Стандартні утиліти для роботи з типами 761
Додаток Д. Концепти 803
Бібліографія 815
Глосарій 821
Предметний покажчик 833
Анотація
Всі характеристики
- Видавництво
- Автор
- Категорія
- Номер видання2-ге вид.
- Рік2018
- Сторінок848
- Формат170х240 мм
- ОбкладинкаТверда
- Тип паперуОфсетний
- МоваРосійська
- Оригінальна назваC++ Templates, 2nd Edition
Товар входить до категорії
-
Самовивіз з відділень поштових операторів від
45 ₴ -80 ₴ -
Доставка поштовими сервісами - тарифи перевізника
Рецензії