Эффективный и современный C++ [Скотт Мейерс] (pdf) читать постранично

-  Эффективный и современный C++  (пер. И. В. Красиков) 12.86 Мб, 306с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Скотт Мейерс

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

Эффективный
и современныи
""

С++

Effective Modern С++

Scott Meyers

lkijing



Cambridgc



1:arnham



Kбln



Scbastopol



Tokyo



O"J{cill;

O"REILLY@

Эффективный
и современныи
С++
w

42 рекомендации по использованию С++ 11 и С++14

Скотт Мейерс


Москва • Санкт-Петербург• Киев
2016

ББК 32.973.26-018.2.75

М45
УДК 681.3.07
Издател1.ский дом "Вильяме"
Зав. редакцией С.Н. Триrуб
Перевод с английского и редакция канд. техн. наук И.В. Красикова
По общим вопросам обращайтесь в Издательский дом "Вильяме"

110

адресу:

i11fo@williamspнЫishi11g.rom, IНtp:/ /www.williamspt1Ьlisl1i11g.roш
Мейерс, Скотт.
Эффективный и современный С++:

М45

и С++14.: Пер. с англ.
т

-

42 рекомендации по исполыованию С++ 1 1
М. : ООО "ИЛ. Вильяме", 2016. - 304 с.: ил. - Пap required
to know thefull definition ofT?'' Дополнительный пример Matrix в разделе 5.3 основан на пись­
ме Дэвида Абрахамса (David Abrahams). Комментарий Джо Аргонна (Joe Argonne) от 8 декаб­
ря 20 12 года к материалу из блога "Another a/ternative to lambda move capture" от 30 ноября
2013 года стал источником для описанного в разделе 6.2 подхода к имитации инициализации
на основе std:: Ьind в C++l l. Пояснения в разделе 7.3 проблемы с неявным отключением
в деструкторе std: : thread взяты из статьи Ганса Бехма (Hans-J. Boehm) "N2802: А plea to
reconsider detach-on-destruction for thread objects" от 4 декабря 2008 года. Раздел 8. 1 появился
благодаря обсуждению материала в блоге Дэвида Абрахамса "Want speed? Pass Ьу value" от
15 августа 2009 года. Идея о том, что типы, предназначенные только для перемещения, долж­
ны рассматриваться отдельно, взята у Мэттью Фьораванте (Matthew Fioravante), в то время
как анализ копирования на основе присваивания взят из комментариев Говарда Хиннанта
(Howard Нinnant). В разделе 8.2 Стивен Т. Лававей и Говард Хиннант помогли мне понять
вопросы, связанные с относительной производительностью функций размещения и встав­
ки, а Майкл Винтерберг (Michael Winterberg) привлек мое внимание к тому, как размещение
может приводить к утечке ресурсов. (Майкл, в свою очередь, называет своим источником
презентацию "С++ Seasoning" Шона Парента (Sean Parent) на конференции Going Native 2013.
Майкл также указал, что функции размещения используют непосредственную инициализа­
цию, в то время как функции вставки используют копирующую инициализацию.)
Проверка черновиков технической книги является длительной и критичной, но со­
вершенно необходимой работой, и мне повезло, что так много людей были готовы за
нее взяться. Черновики этой книги были официально просмотрены такими специали­
стами, как Кассио Нери (Cassio Neri), Нейт Кёль (Nate Kohl), Герхард Крейцер (Gerhard
Kreuzer), Леон Золман (Leor Zolman), Барт Вандевойстин (Bart Vandewoestyne), Стивен Т.
Лававей (Stephan Т. Lavavej), Невин Либер (Nevin ":- )" Liber ) , Речел Ченг (Rachel Cheng),
Роб Стюарт (Rob Stewart), Боб Стигалл (ВоЬ Steagall), Дамьен Уоткинс (Damien Watkins),
Брэдли Нидхам (Bradley Е. Needham), Рейнер Гримм (Rainer Grimm), Фредрик Винклер
(Fredrik Winkler), Джонатан Уокели (Jonathan Wakely), Герб Саттер (Herb Sutter), А ндрей

Благодарности

13

Александреску (Andrei Alexandrescu), Эрик Ниблер (Eric NieЬler), Томас Беккер (Thomas
Becker), Роджер Орр (Roger Оп), Энтони Вильяме (Anthony Williams), Майкл Винтерберг
(Michael Winterberg), Бенджамин Хахли (Benjamin Huchley), Том Кирби-Грин (Tom Кirby­
Green), Алексей Никитин (Alexey А. Nikitin), Вильям Дилтрай (William Dealtry), Хуберт
Мэттьюс (Hubert Matthews) и Томаш Каминьски (Tomasz Кaminski). Я также получил от­
зывы ряда читателей с помощью сервисов O'Reilly's Early Release EBooks и Safari Books
Online's Rough Cuts, посредством комментариев в моем блоге ( The View from Aristeia)
и электронной почтой. Я благодарен каждому, кто высказал свои замечания. Эта книга
получилась гораздо лучше, чем она была бы без этой помощи. В особенности я признате­
лен Стивену Т. Лававею и Робу Стюарту, чьи чрезвычайно подробные и всеобъемлющие
замечания заставили меня забеспокоиться: кто из нас потратил больше сил и времени
на эту книгу - я или они? Моя особая благодарность - Леору Золману (Leor Zolman),
который не только просмотрел рукопись, но и дважды проверил все приведенные в ней
примеры кода.
Черновики цифровых версий книги были подготовлены Герхардом Крейцером
(Gerhard Kreuzer), Эмиром Вильямсом (Emyr Williams) и Брэдли Нидхэмом (Bradley Е.
Needham).
Мое решение ограничить длину строки кода 64 символами (максимум для правиль­
ного отображения на печати, а также на различных цифровых устройствах при разной
ориентации и конфигурации шрифтов) было основано на данных, предоставленных
Майклом Махером (Michael Maher).
С момента первой публикации я исправил ряд ошибок и внес некоторые усовершен­
ствования, предложенные такими читателями, как Костас Влахавас (Kostas Vlahavas), Да­
ниэль Алонсо Алеман (Daniel Alonso Alemany), Такатоши Кондо (Takatoshi Kondo), Бар­
тек Сургот (Bartek Szurgot), Тайлер Брок (Tyler Brock), Джай Ципник (Jay Zipnick), Барри
Ревзин (Вапу Revzin), Роберт Маккейб (Robert МсСаЬе), Оливер Брунс (Oliver Bruns), Фа­
брис Ферино (Fabrice Ferino), Дэнез Джонитис (Dainis Jonitis), Петр Валашек (Petr Valasek)
и Барт Вандевойстин (Bart Vandewoestyne). Большое спасибо всем им за помощь в повы­
шении точности и ясности