作为对问题Should I define static inline methods in header file?的跟进
如果我在两个单独的具有相同签名的cpp文件中具有两个辅助函数,则编译器将抱怨ODR。因此,在cpp文件static
中提供免费功能以避免名称冲突并减少链接程序的工作量是一种好风格吗?
更普遍的问题:在cpp文件中制作自由函数inline
,static
或static inline
有什么优点和缺点?
对于这样的功能,请使用匿名名称空间:
namespace {
// your function here
}
这样,它只限于该翻译单元,而对链接程序不可见。