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