订购C ++ #include' s

时间:2018-03-22 15:20:04

标签: c++ c header-files

以下是Google's C++ style guide的部分:

  

在dir / foo.cc或dir / foo_test.cc中,其主要目的是实现   或者在dir2 / foo2.h中测试这些东西,按如下顺序排列你的包含:

dir2/foo2.h.
A blank line
C system files.
C++ system files.
A blank line
Other libraries' .h files.
Your project's .h files.
     

请注意,任何相邻的空白行都应折叠。

     

使用首选顺序,如果dir2 / foo2.h省略了任何必要的顺序   包括,dir / foo.cc或dir / foo_test.cc的构建将会中断。从而,   此规则可确保构建中断首先显示给人员   处理这些文件,而不是其他包中无辜的人。

我不明白最后一行:

  

因此,此规则可确保首先为人们显示构建中断   处理这些文件,而不是其他包中无辜的人。

有人可以解释如何将dir2/foo2.h首先放入"好"建立休息时间,以及如何将dir2/foo2.h最后的结果放在"坏"建立休息?

2 个答案:

答案 0 :(得分:15)

PropertyChanged中,您忘记包含dir2.h。然后在当前文件中包含:

X.h

这将编译好。然后其他人在其他地方包含X.h dir2.h ,他们最终会遇到来自dir2.h的编译错误,即使他们从未改变过该文件中的任何内容......

如果您的订单正确,则应在首次加入dir2.h时收到错误。

答案 1 :(得分:4)

A" good"构建休息时间是因为突然发生变化而破坏的。因为那家伙可以修复它。如果那个人注意到那些重大更改,因为包含文件已经排序,所以它确实为他编译,但是它会被释放。

A"坏" build break是指发布的版本破坏了该代码用户的构建。