Що може змусити вас замислитись, чи залишається інформація та поради в цьому випуску «Ефективний C ++» до попереднього C ++ 0x. Я радий повідомити, що це так. Дивно, але насправді. Провівши майже два роки, пронизані деталями C ++ 0x, я очікував трохи застогнати, переглядаючи зміст цієї книги, маючи на увазі C ++ 0x. Звичайно, деякі пункти були б недоречними. Але поради, які я знайшов, виявилися здоровими. Якщо розробники C ++ 0x віддають перевагу consts, enums та inlines до
#defines
(Пункт 2)? Вони повинні. Чи повинні вони перешкоджати виняткам залишати деструктори (пункт 8)? Звичайно. Чи повинні вони використовувати об’єкти для управління ресурсами? Оголосити членів даних приватними? Розглянемо альтернативи віртуальним функціям? Незалежний від параметрів код від шаблонів? (Пункти 13, 22, 35 та 44.) Так, так, так, так! Моя мета завжди полягала в тому, щоб у змісті «Ефективного C ++» було узагальнено поради в книзі, і це резюме залишається так само застосовно до розробки C ++ 0x, як і для «традиційного» розвитку C ++. C ++ 0x - це більш широка мова, і в чомусь це інша, але основні методи ефективного використання "старого" C ++ є основними і для ефективного використання C ++ 0x.
Це не означає, що цей ефективний C ++ є ідеальним для C ++ 0x. У книзі не обговорюються функції, які є новими для C ++ 0x, тому пункти про ефективне використання цих функцій відсутні. C ++ 0xified Effective C ++, безумовно, матиме елементи, присвячені переміщенню операцій, рівномірній ініціалізації та виразам лямбда, і, ймовірно, буде ціла глава щодо ефективного використання API паралельності. Така книга також міститиме різні приклади, наприклад, такі, що використовують автоматичні змінні, на основі діапазону для циклів, ініціалізатори за замовчуванням у класі, а також випадковий варіативний шаблон. Оскільки ця книга не підтримує C ++ 0x, помилки є помилками, а не комісією.