c++ - 我什么时候应该使用 -inl.h 文件?

标签 c++ header inline header-files

我刚刚注意到 this itemGoogle C++ Coding Style Guide - 我不太明白。

如果我把一个内联方法或函数放在一个文件中,而不是其他文件包含的头文件中,它就不是类的方法;并且它只能用于包含它的代码位。那么为什么还要有这样的 -inl.h 文件呢?

另外,为什么我们还要内联长函数呢? (即除了模板的情况,当我们必须将代码放在头文件中进行实例化时)

最佳答案

I just noted this item in the Google C++ Coding Style Guide - and I don't quite get it.

请对指南持保留态度。许多指南旨在帮助与 Google 的遗留代码库进行交互,并不是对一般 C++ 开发的特别好的建议。

So why even have such -inl.h files at all?

没有特别好的理由;我自己不这样做。有些人喜欢它们,因为它最大限度地减少了主头文件中的内容(头文件的用户通常希望阅读),并分离出他们通常不关心的实现细节。

Also, why do we even want to inline long functions anyways?

有时,我们必须:模板定义必须在任何实例化模板的翻译单元中可用,因此它们(通常)需要位于标题中。

有时,我们希望:通过在 header 中实现内联函数,我们不必担心为其构建和链接单独的翻译单元。这样可以更方便地分发库;可能以更长的构建时间为代价。

关于c++ - 我什么时候应该使用 -inl.h 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698235/

相关文章:

c++ - 正确读取和写入 std::vector 到文件中

c++ - OpenGL Assimp 导入模型不渲染

javascript - 将 Javascript 对象转换为 JSAPIPtr 时出现错误的变体转换异常

header - 是否有可能伪造一个 (mp4) moov 原子?

html - CSS 居中具有背景颜色的内联元素

c++ - 如何强制用户在字符串中输入恰好 8 个字符

css - yslow 在多个背景上失败?

html - 固定标题在网页滚动时仍然消失

css - 与 2 个内联 div 对齐?

c++ - 内联函数,总是n+1份代码,其中 'n'是调用次数