Почему в Руководстве по стилю Google указано, что системные заголовки должны предшествовать заголовкам проекта?

В разделе Руководства по стилю Google C ++, посвященном заголовкам, первая строка гласит:

Используйте стандартный порядок для удобочитаемости и чтобы избежать скрытых зависимостей:
Связанный заголовок, библиотека C, библиотека C ++, другие библиотеки .h, ваш
проект .h.

Но это кажется мне обратным, потому что заголовки проекта, вероятно, будут зависеть от системных заголовков, тогда как системные заголовки, очевидно, вряд ли будут зависеть от заголовков проекта. Упрощая пример, приведенный в руководстве, мы получаем следующее #include линии для X.cpp это зависит от X.hСтандартный заголовок <vector> и другой файл в кодовой базе проекта, A.h:

#include "X.h"
#include <vector>

#include "other/module/A.h"

Если A.h зависит от <vector>порядок стиля скрывает проблему. Если бы заголовки были включены в порядке наиболее связанных с наименее связанных, проблема будет выявлена.

Что мне не хватает? Возможно, контраргумент состоит в том, что эта проблема будет раскрыта, когда A.cpp компилируется, но этот аргумент не сохраняется, если нет A.cpp начать с (т.е. A.h только для заголовка).

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]