Литература C++

Для повторения/изучения базового языка:

Стенли Липпман, - "Язык программирования C++. Базовый курс".
Бьярне Страуструп, - "Программирование. Принципы и практика с использованием C++".

Для людей, которые переходят на C++ c другого языка программирования:

Эндрю Кениг, Барбара Э. Му, - "Эффективное программирование на C++. Практическое программирование на примерах".
Питер Готтшлинг, - "Современный C++. Для программистов, инженеров и ученых".

Для улучшения стиля, приобретения лучших практик:

Герб Саттер, Андрей Александреску, -"Стандарты программирования на С++".
Скотт Майерс, - "Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ".
Стивен Дьюхэрст, - "Скользкие места С++. Как избежать проблемы при проектировании и компиляции ваших программ".
Скотт Майерс, - "Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14".

Практические вопросы применения C++:

Герб Саттер, - "Решение сложных задач на С++".
Герб Саттер, - "Новые сложные задачи на C++".
Мэтью Уилсон, - "C++. Практический подход к решению проблем программирования".

Шаблоны C++:

Дэвид Вандевурд, Николаи М. Джосаттис, Дуглас Грегор, - "Шаблоны C++. Справочник разработчика".

Детальное описание работы IOStreams:

Angelika Langer, Klaus Kreft, - "Standard C++ IOStreams and Locales".

Практические вопросы применения паттернов:

Джон Влиссидес, - "Применение шаблонов проектирования. Дополнительные штрихи".

Паттерны:

Много авторов, - сборник из 5 томов "Pattern-Oriented Software Architecture".
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес, - "Приемы объектно-ориентированного проектирования. Паттерны проектирования".

По алгоритмам для вхождения в тему:

Роберт Седжвик, - "Алгоритмы на C++".

По алгоритмам:

Дональд Кнут, - "Искусство программирования" (тома 1-4*).
Томас Кормен, - "Алгоритмы. Построение и анализ".

По истории языка C++:

Бьярне Страуструп, - "Дизайн и эволюция C++".

По ООП:

Бертран Мейер, - "Объектно-ориентированное конструирование программных систем".

Для практики ООП на С++:

Гради Буч, - "Объектно-ориентированный анализ и проектирование с примерами приложений на С++".
Robert Martin, - "Designing Object Oriented C++ Applications Using The Booch Method".

Рефакторинг:

Мартин Фаулер, - "Рефакторинг. Улучшение существующего кода".
Роберт Мартин, - "Чистый код. Создание, анализ и рефакторинг".

Качество кода и архитектура:

Роберт Мартин, - "Гибкая разработка программ на Java и C++. Принципы, паттерны и методики".
Стив Макконел, - "Совершенный код".

Проектирование больших систем на С++:

John Lakos, - "Large-Scale C++ Software Design" (Немного устарела, но новичок в этом деле найдет много полезного).
John Lakos, - "Large-Scale C++ Volume I: Process and Architecture"

Смежная тема, поддержка унаследованного (legacy) кода и проектов (лучше читать в оригинале):

Michael Feathers, - "Working Effectively with Legacy Code".

Многопоточность:

Maurice Herlihy, - "The Art of Multiprocessor Programming".

Сборники статей из С++ Report:

Stanley Lippman (редактор), - "C++ Gems: Programming Pearls from The C++ Report".
Robert Martin (редактор), - "More C++ Gems".

Вопросы внутреннего устройства C++ (чуть устарело):

Stanley Lippman, - "Inside the C++ Object Model".

Описание возможностей С++17:

Nicolai M. Josuttis, - "C++17 - The Complete Guide: First Edition".