【发布时间】:2018-10-09 08:42:18
【问题描述】:
关于C/C++ include file order/best practices的问题,最好的答案建议先包含相关的header。
但是,在这两种情况下,我都找不到您这样做的充分理由。
Google 和 Mozilla 编码规则在我看来最好,因为它们强制您首先包含最“标准”的标头。
这样,我认为您不太可能弄乱包含的文件(例如,通过取消定义其他头文件中使用的一些宏等),所以这对我来说似乎是最好的方法。
但是按照这个原理,为什么要先包含相关的标题?由于其中的任何语法错误都可能会弄乱以下所有标题?
我认为最好将相关标题放在最后。
【问题讨论】:
-
@user463035818 - 相应地更新了我的答案。谷歌禁止转发声明 IIRC,所以这是他们不会发布的一些理由。
-
“相关”一词的使用相当模糊。所有包含都应该是“相关的”,否则为什么要包含它们?请更正这一点,可能使用您引用的问题中的原始术语“对应”。
-
@StoryTeller 他们不禁止转发声明,这将严重限制他们可以编写的正确、有用的代码集(任何类型的循环都需要转发声明,除非你删除所有类型)。它们将使用限制在必要的情况下。
-
@KonradRudolph - 现在重新阅读它,它似乎不像我记得的那样严厉。坦率地说,我仍然觉得在风格指南中根本不值得一提。但这是他们的特权。
-
@StoryTeller 是的,同意。总的来说,Google C++ 风格指南充其量仍然是在浪费时间,最坏的情况是非常糟糕的建议(尽管它与过去的版本相比有了很大的改进)。不幸的是,它是如此突出,以至于很多人都觉得它具有权威性。
标签: c++ header-files