作为问题的后续问题我应该在头文件中定义静态内联方法吗?
如果我在两个单独的 cpp 文件中有两个具有相同签名的辅助函数,则编译器会抱怨 ODR。因此,在 cpp 文件中创建自由函数static以避免名称冲突并减少链接器的工作是否是一种好风格?
更一般地问:什么是打免费功能的优点和缺点inline,static或static inline在CPP文件?
为这样的函数使用匿名命名空间是一种很好的做法:
namespace {
// your function here; no need for static or inline
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,它仅局限于该翻译单元,对链接器不可见,因此一个定义规则将成立。