12  дек

Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 скачать


Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 Название: Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14
Автор: Скотт Мейерс
Издательство: Вильямс
Год: 2015
Страниц: 304
Формат: PDF
Размер: 13,2 Мб
ISBN: 978-5-8459-2000-3
Качество: Отличное
Язык: Русский

Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 — В этой книге отражен бесценный опыт ее автора как программиста на C++. Новые возможности этого языка программирования, появившиеся в стандартах C++11 и C++14 - это не просто новые ключевые слова или функции, это появление совершенно новых концепций, так что для их эффективного использования недостаточно просто узнать об их существовании, и программировать на C++11, как на несколько улучшенном и расширенном функционально C++98.
Когда происходят такие глобальные изменения в языке программирования, их изучению следует посвятить определенное время, написать сотни, а еще лучше - тысячи строк кода, и столкнуться с массой проблем, кажущихся тем более странными и непонятными, чем большим опытом работы с C++98 вы обладаете. К программированию в полной мере относится фраза Евклида о том, что в геометрии нет царских путей. Но пройти путь изучения и освоения нового языка программирования вам может помочь проводник, показывающий наиболее интересные места и предупреждающий о ямах и ухабах. Таким проводником может послужить книга Скотта Мейерса. С ней вы не заблудитесь и не забредете в дебри, из которых будете долго и трудно выбираться с помощью отладчика.
При этом книга не просто научит вас использовать новые возможности языка - она научит использовать их эффективно. Но и это не все - книга не просто учит эффективному применению C++, но еще и рассказывает, почему ту или иную задачу следует решать именно так.
Эта книга заставляет вас не просто заучить правила - она заставляет думать.
И хотя эта книга в первую очередь предназначена для энтузиастов и профессионалов, она достойна места на полке любого программиста - как профессионала, так и зеленого новичка.
Освоение C++11 и C++14 - это больше, чем просто ознакомление с вводимыми этими стандартами возможностями (например, объявлениями типов auto, семантикой перемещения, лямбда-выражениями или поддержкой многопоточности). Вопрос в том, как использовать их эффективно - так, чтобы создаваемые программы были корректны, эффективны и переносимы, а также чтобы их легко можно было сопровождать.
Именно этим вопросам и посвящена данная книга, описывающая создание по-настоящему хорошего программного обеспечения с использованием C++11 и C++14 - т.е. с использованием современного C++.
В книге рассматриваются следующие темы:
Преимущества и недостатки инициализации с помощью фигурных скобок, спецификации noexcept, прямой передачи и функций make интеллектуальных указателей;
Связь между std::move, std::forward, rvalue-ссылками и универсальными ссылками;
Методы написания понятных, корректных, эффективных лямбда-выражений;
Чем std::atomic отличается от volatile, как они используются и как соотносятся с API параллельных вычислений C++;
Какие из лучших методов "старого" программирования на C++ (т.е. C++98) должны быть пересмотрены при работе с современным C++.
Эффективный и современный C++, следуя принципам более ранних книг Скотта Мейерса, охватывает совершенно новый материал. Эта книга достойна занять свое место на полке каждого программиста на современном C++.

Содержание:

Об авторе
Введение
Терминология и соглашения
Замечания и предложения
От редакции
Ждем ваших отзывов!
Глава 1. Вывод типов
1.1. Вывод типа шаблона
1.2. Вывод типа auto
1.3. Знакомство с decl tуре
1.4. Как просмотреть выведенные типы
Глава 2. Объявление auto
2.1. Предпочитайте auto явному объявлению типа
2.2. Если auto выводит нежелательный тип используйте явно типизированный инициализатор
Глава 3. Переход к современному С++
3.1. Различие между {} и () при создании объектов
3.2. Предпочитайте nullptr значениям 0 и NULL
3.3. Предпочитайте объявление псевдонимов применению typedef
3.4. Предпочитайте перечисления с областью видимости перечислениям без таковой
3.5. Предпочитайте удаленные функции закрытым неопределенным
3.6. Объявляйте перекрывающие функции как override
3.7. Предпочитайте итераторы const _ i terator итераторам i terator
3.8. Если функции не генерируют исключений, объявляйте их как noexcept
3.9. Используйте, где это возможно, constexpr
3.10. Делайте константные функции - члены безопасными в смысле потоков
3.11. Генерация специальных функций-членов
Глава 4. Интеллектуальные указатели
4. 1. Используйте std::unique_ptr для управления ресурсами путем исключительного владения
4.2. Используйте std::shared_ptr д ля управления ресурсами путем совместного владения
4.3. Используйте std::weak_ptr для std::shared_ptr-пoдoбныx указателей которые могут быть висячими
4.4. Предпочитайте использование std::make_unique и std::make_shared непосредственному использованию оператора new
4.5. При использовании идиомы указателя на реализацию определяйте специальные функции-ч лены в файле реализации
Глава 5. Rvalue-ccыnки, семантика перемещений и прямая передача
5. 1. Азы std::move и std::forward
5.2. Отличие универсальных ссылок от rvalue-ccылoк
5.3. Используйте std::move для rvalue-ccылoк, а std::forward д ля универсальных ссылок
5.4. Избегайте перегрузок для универсальных ссылок
5.5. Знакомство с альтернативами перегрузки для универсальных ссылок
   Отказ от перегрузки
   Передача const Т&
   Передача по значению
   Диспетчеризация дескрипторов
   Ограничения шаблонов, получающих универсальные ссылки
   Компромиссы
5.6. Свертывание ссылок
5.7. Считайте, что перемещающие операции отсутствуют, дороги или не используются
5.8. Познакомьтесь с случаями некорректной работы прямой передачи
   Инициализаторы в фигурных скобках
   0 и NULL в качестве нулевых указателей
   Целочисленные члены-данные stat ic const и constexpr без определений
   Имена перегруженных функций и имена шаблонов
   Битовые поля
   Резюме
Глава 6. Лямбда-выражения
6.1. Избегайте режимов захвата по умолчанию
6.2. Используйте инициализирующий захват для перемещения объектов в замыкания
6.3. Используйте параметры decltype для auto&& для передачи с помощью std::forward
6.4. Предпочитайте лямбда-выражения применению std::bind
Глава 7. Параллельные вычисления
7. 1. Предпочитайте программирование на основе задач программированию на основе потоков
7.2. Если важна асинхронность, указывайте std::launch::async
7.3. Делайте std::thread неподключаемым на всех путях выполнения
7.4. Помни те о разном поведении деструкторов дескрипторов потоков
7.5. Применяйте фьючерсы void для одноразовых сообщений о событиях
7.6. Используйте std::atomic для параллельности, volatile - для особой памяти
Глава 8. Тонкости
8.1. Рассмотрите передачу по значению для копируемых параметров которые легко перемещаются и всегда копируются
8.2. Рассмотрите применение размещения вместо вставки
Предметный указатель

Скачать Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14







Разместил Gunpowder в категорию КНИГИ / Программирование (книги)
Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 скачали 77 раз






Похожие по теме публикации:


Комментарии:



С удовольствием расширил свои профессиональные знания с помощью книги "Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14". Скажу сразу, что эта книга не для новичков. Если вы знаете язык программирования как программу 1С, причем со стороны пользователя, то эта книга явно не для вас и азами программирования она вас не научит, потому что их здесь просто нет. А для таких как я (специальность программист бухгалтерских программ) эта книжка просто находка.



Цитировать
Добавление комментария

Ваше Имя:
Ваш E-Mail: (необязательно)
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent