我刚刚注意到 this item在Google 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/