Эффективный C++ все еще эффективны?



из того, что я увидел в этом посте я решила начать чтение книги Эффективный C++.



но теперь, когда есть много новых функций из-за C++11 и что некоторые из лучших практик изменились, я не уверен, действительно ли это хорошая идея. Является ли появление C++11 устаревшим каким-либо советом, содержащимся в эффективном C++? Если да, то каких тем следует избегать?

630   3  

3 ответов:

Это то, что Скотт Мейерс сам должен был сказать об этом в своем блоге

что может привести вас к вопросу, является ли информация и советы в эта версия эффективного C++до C++ 0x остается актуальной. Я рад чтобы сообщить, что он делает. На самом деле, это удивительно. Потратив почти два года погруженный в детали C++0x, я ожидал немного постанывать когда я просматривал оглавление этой книги с учетом C++0x. Конечно некоторые пункты были бы несоответствующий. Но совет, который я нашел, доказал звук. Должно разработчики на C++0х предпочитают констант, перечислений и встраивает в #defines (пункт 2)? Они должны. Должны ли они предотвращать исключения из оставив деструкторы (пункт 8)? Конечно. Должны ли они использовать объекты для управлять ресурсами? Объявить данные-члены закрытыми? Рассмотрим альтернативы к виртуальным функциям? Фактор параметр-независимый код из шаблоны? (Пункты 13, 22, 35, и 44.) Да, да, да, да! Моя цель всегда был для эффективного Оглавление C++для подведения итогов советы в книге, и это резюме остается столь же применимым к Разработка C++0x как "традиционная" разработка C++. C++0x - это a более крупный язык, и в некотором смысле это другой, но ядро методы эффективного использования "старого" C++ являются основными для эффективное использование C++0x тоже.

Это не означает, что этот эффективный C++ идеально подходит для С++0х. Книга не обсуждать особенности программирования на C++0х, так Пункты о компании эффективное использование этих функций отсутствует. A C++0xified Эффективный C++, безусловно, будет иметь элементы, посвященные операциям перемещения, для равномерной инициализации и лямбда-выражений, и, вероятно, у него будет целая глава об эффективном использовании API параллелизма. Такая книга также будет содержать различные примеры, например, те, которые используют автоматические переменные, основанные на диапазоне для циклов, инициализаторы по умолчанию в классе, а также случайный вариационный шаблон. К в той мере, в какой эта книга не дотягивает до своей поддержки C++0x, ошибки-это упущения, а не Комиссии.

обновление: новое название Эффективный Современный C++ продается с ноября 2014 года от О'Рейли и Амазонка (и многие другие, что вы можете google для).

Да, определенно стоит читать. Там есть новая книга, над которой работает Скотт:Эффективный C++11, который концентрируется на C++11 только код. Элемент Эффективный C++ по-прежнему очень актуально, и не заменяется новой книгой. Покупайте, читайте, наслаждайтесь :)

во-первых, книга все еще действительна для C++03.

во-вторых, Мейерс пишет или написал, в зависимости от того, когда вы читаете это предложение, эффективный C++11.

три, говоря в целом, пункты этой книги все еще будут действительны. C++ по-прежнему предпочитает скорость безопасности, и многие проблемы в Эффективный C++ крутятся вокруг этого.

The только вид точки я ожидал бы быть недействительным являются те, которые говорят: "Не делайте это, вместо этого.""Не делай этого" будут действительны. Но C++ решит некоторые проблемы. В частности, любые рекомендации по использованию boost, скорее всего, устарели, поскольку C++11 включил многие функции, которые Мейерс специально ссылается на читателя для Boost.

Comments

    Ничего не найдено.