Стандарты программирования на С++

       

Стандарты программирования на С++

Проектируйте и пишите безопасный в отношении ошибок код
Для уведомления об ошибках следует использовать исключения
Генерируйте исключения по значению, перехватывайте — по ссылке
Уведомляйте об ошибках, обрабатывайте и преобразовывайте их там, где следует

Избегайте спецификаций исключений
STL: контейнеры
По умолчанию используйте vector
Вместо массивов используйте vector и string
Используйте vector (и string::c_str) для обмена данными с API на других языках
Храните в контейнерах только значения или интеллектуальные указатели



Предпочитайте push_back другим способам расширения последовательности
Предпочитайте операции с диапазонами операциям с отдельными элементами
Используйте подходящие идиомы
STL: алгоритмы
Используйте отладочную реализацию STL

Предпочитайте вызовы алгоритмов самостоятельно разрабатываемым циклам
Пользуйтесь правильным алгоритмом поиска
Пользуйтесь правильным алгоритмом сортировки
Делайте предикаты чистыми функциями
В качестве аргументов алгоритмов

Корректно пишите функциональные объекты
Безопасность типов
Избегайте явного выбора типов — используйте полиморфизм

Работайте с типами, а не с представлениями
Избегайте reinterpret_cast
Избегайте применения static_cast к указателям
Обсуждение
Ссылки

Избегайте преобразований, отменяющих const
Не используйте преобразование типов в стиле С
Не применяйте memcpy или memcmp к не-POD типам

Не используйте объединения для преобразований
Не используйте неизвестные аргументы (троеточия)
Не используйте недействительные объекты и небезопасные функции
Не рассматривайте массивы полиморфно
Список литературы
из Вопросы организации и стратегии
Стиль проектирования

Стиль кодирования
Функции и операторы
Проектирование классов и наследование
Конструкторы, деструкторы и копирование
Пространства имен и модули

Шаблоны и обобщенность
Обработка ошибок и исключения - 2
STL: Контейнеры
STL: алгоритмы
Безопасность типов
От издательского дома "Вильямс"
Предметный указатель
Содержание раздела