Шаблони C++. Довідник розробника. 2-е видання

Паперова книга
78333
Шаблони C++. Довідник розробника. 2-е видання - фото 1
1'250
7 людей

Все про “Шаблони 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

Анотація

Шаблони C++. Довідник розробника. 2-е видання

Рецензії

0

Всі характеристики

Товар входить до категорії

  • Самовивіз з відділень поштових операторів від 45 ₴ - 80 ₴
  • Доставка поштовими сервісами - тарифи перевізника