在 C++ Google Style Guide 的标题部分中,第一行说:
使用标准顺序以提高可读性并避免隐藏依赖项:相关头文件、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
仅标题),则该论点不成立。