Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.





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

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

Опубликовал: Kitovras | Дата публикации: 14.06.2021
Раздел: Книги


Эффективный и современный 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++.

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

Содержание:

Об авторе
Введение
Терминология и соглашения
Замечания и предложения
От редакции
Ждем ваших отзывов!
Глава 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

Скачать с dfiles.ru
Скачать с turbobit.net
Скачать с hitfile.net
Скачать с uploaded.net




На нашем сайте вы можете бесплатно скачать Книги без лишних регистраций и отправки платной смс, а именно скачать Эффективный и современный C++: 42 рекомендации по использованию C++11 и C++14 бесплатно.

Просмотров: 75 | Комментарии: 0

Другие новости по теме:

Ключевые теги: Современный, эффективный, использованию, 2015, рекомендации


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Наш опрос
Как часто вы посещаете наш сайт?
Всего ответов: 7
Статистика
Реклама