c++ - 我应该在 cpp 文件中定义静态内联方法吗?
问题描述
作为问题的后续,我应该在头文件中定义静态内联方法吗?
如果我在两个单独的 cpp 文件中有两个辅助函数具有相同的签名,编译器会抱怨 ODR。因此,在 cpp 文件中创建自由函数static
以避免名称冲突并减少链接器的工作是否是一种好的风格?
inline
更普遍地问:制作自由函数或在cpp文件中的优点和缺点是什么static
?static inline
解决方案
对此类函数使用匿名命名空间是一种很好的做法:
namespace {
// your function here; no need for static or inline
}
通过这种方式,它仅限于该翻译单元,对链接器不可见,因此一个定义规则将成立。
推荐阅读
- node.js - 错误:检测到循环依赖(属性键:“firstName”)由 tx-mixer 抛出
- angular - 如何使用注入数据测试组件?
- python - Python 之间的语法(IF 语句)
- sql - 将信息从行排序到列
- react-native - react-native onpress 与 onchangetext 冲突
- routes - 有没有办法在 HERE MAPS ROUTING v8 中显示位置坐标?
- laravel - 如何在 laravel 8 中启用恢复软删除的项目
- python - 将文件夹和文件替换为最新的
- c# - HtmlHelpers - 新 Dotnet 5 中的 Html.LabelFor/TextBoxFor/EditorFor
- mapstruct - 如何将java集合映射到它的大小