ein*_*ica 9 c++ inline header header-files
我刚刚在Google C++编码风格指南中注意到了这个项目 - 我并不太明白.
如果我将内联方法或函数放在除其他文件包含的标题之外的文件中,它将不是该类的方法; 它只能用于包含它的代码.那么为什么甚至会有这样的-inl.h文件呢?
另外,为什么我们甚至想要内联长函数呢?(即,除了模板的情况,我们必须将代码放在头文件中进行实例化)
Mik*_*our 11
我刚刚在Google C++编码风格指南中注意到了这个项目 - 我并不太明白.
用一撮盐来取指导.许多指南旨在帮助与Google的遗留代码库进行交互,对于一般的C++开发并不是特别好的建议.
那么为什么甚至还有这样的
-inl.h文件呢?
没有特别好的理由; 我自己不这样做.有些人喜欢它们,因为它最大限度地减少了主标题文件中的内容数量,标题的用户通常希望读取这些内容,并将实现细节分离出来,而这些细节通常并不关心.
另外,为什么我们甚至想要内联长函数呢?
有时,我们必须:模板定义必须在实例化模板的任何翻译单元中可用,因此它们(通常)需要在标题中.
有时,我们希望:通过在标题中实现内联函数,我们不必担心为它构建和链接单独的翻译单元.这可以使分发库更方便; 可能以更长的构建时间为代价.
According to latest Google coding style, it is no longer allowed https://google.github.io/styleguide/cppguide.html#Variable_Names
最好将模板和内联函数的定义与其声明放在同一文件中。这些构造的定义必须包含在使用它们的每个 .cc 文件中,否则程序可能无法在某些构建配置中链接。如果声明和定义位于不同的文件中,则包含前者应传递包含后者。不要将这些定义移至单独包含的头文件 (-inl.h);这种做法过去很常见,但现在已不再允许。
| 归档时间: |
|
| 查看次数: |
4174 次 |
| 最近记录: |