Source files
SF.8
Используйте защиту от повторного включения (`#include` guards) для всех заголовочных файлов
Причина
Чтобы избежать многократного включения файлов через #include.
Во избежание коллизий защитных макросов не называйте их только по имени файла. Обязательно включайте ключевое слово и хороший уточнитель, например имя библиотеки или компонента, частью которого является заголовочный файл.
Пример
// file foobar.h:
#ifndef LIBRARY_FOOBAR_H
#define LIBRARY_FOOBAR_H
// ... declarations ...
#endif // LIBRARY_FOOBAR_H
Контроль
Отмечайте файлы .h без защитных макросов #include.
Примечание
Некоторые реализации предлагают расширения поставщика, например #pragma once, в качестве альтернативы защите от повторного включения. Это не стандарт и не переносимо. Такой подход привносит семантику файловой системы хост-машины в вашу программу и привязывает вас к конкретному поставщику. Наша рекомендация — писать на стандартном ISO C++: смотрите правило P.2.