Стандарты программирования на С++
Проектируйте и пишите безопасный в отношении ошибок кодДля уведомления об ошибках следует использовать исключения
Генерируйте исключения по значению, перехватывайте — по ссылке
Уведомляйте об ошибках, обрабатывайте и преобразовывайте их там, где следует
Избегайте спецификаций исключений
STL: контейнеры
По умолчанию используйте vector
Вместо массивов используйте vector и string
Используйте vector (и string::c_str) для обмена данными с API на других языках
Храните в контейнерах только значения или интеллектуальные указатели
Предпочитайте push_back другим способам расширения последовательности
Предпочитайте операции с диапазонами операциям с отдельными элементами
Используйте подходящие идиомы
STL: алгоритмы
Используйте отладочную реализацию STL
Предпочитайте вызовы алгоритмов самостоятельно разрабатываемым циклам
Пользуйтесь правильным алгоритмом поиска
Пользуйтесь правильным алгоритмом сортировки
Делайте предикаты чистыми функциями
В качестве аргументов алгоритмов
Корректно пишите функциональные объекты
Безопасность типов
Избегайте явного выбора типов — используйте полиморфизм
Работайте с типами, а не с представлениями
Избегайте reinterpret_cast
Избегайте применения static_cast к указателям
Обсуждение
Ссылки
Избегайте преобразований, отменяющих const
Не используйте преобразование типов в стиле С
Не применяйте memcpy или memcmp к не-POD типам
Не используйте объединения для преобразований
Не используйте неизвестные аргументы (троеточия)
Не используйте недействительные объекты и небезопасные функции
Не рассматривайте массивы полиморфно
Список литературы
из Вопросы организации и стратегии
Стиль проектирования
Стиль кодирования
Функции и операторы
Проектирование классов и наследование
Конструкторы, деструкторы и копирование
Пространства имен и модули
Шаблоны и обобщенность
Обработка ошибок и исключения - 2
STL: Контейнеры
STL: алгоритмы
Безопасность типов
От издательского дома "Вильямс"
Предметный указатель
Содержание раздела