【发布时间】:2013-11-06 15:31:08
【问题描述】:
我有一个函数应该包含在两个不同的翻译单元(即 cpp 文件)中,来自一个共同的标题。
我可能会使用匿名命名空间将此函数包含在两个 TU 中而不会发生冲突,但我想知道实现此目的的最佳方法是什么(静态?我不认为 global 可以工作,多个定义)
【问题讨论】:
-
如果你想在头文件中添加函数的定义,那么使用
inline是正确的方法。 -
但这些都是长函数,有意义吗?
-
@DavidKernin:
inline与函数内联关系不大,因此函数的长度无关紧要。如果有帮助,请考虑将其命名错误。inline保证了编译时函数内联所需的条件(即函数的定义在TU中可用),所以它的真正含义是表示一个函数,其定义在每个TU中都可用包括标题。编译器根据自己的启发式决定实际内联的内容,这可能取决于您是否将其标记为inline。
标签: c++