Source files
SF.4
Включайте заголовочные файлы перед другими объявлениями в файле
Причина
Минимизация контекстных зависимостей и повышение читаемости.
Пример
#include <vector>
#include <algorithm>
#include <string>
// ... my code here ...
Пример (плохой)
#include <vector>
// ... my code here ...
#include <algorithm>
#include <string>
Примечание
Это относится как к файлам .h, так и к .cpp.
Примечание
Существует аргумент в пользу изоляции кода от объявлений и макросов в заголовочных файлах путём включения заголовков после кода, который нужно защитить (как в примере «плохой»). Однако:
- это работает только для одного файла (на одном уровне): используйте эту технику в заголовке, включённом вместе с другими заголовками, и уязвимость снова проявится.
- пространство имён («пространство имён реализации») может защитить от многих контекстных зависимостей.
- полная защита и гибкость требуют модулей.
Смотрите также:
Контроль
Легко.