如果我以明显的方式在.h中声明它:
namespace <named_namespace> {
namespace {
…
<type> <function>(<parameters>);
…
}
}
如果将其实现放在 .cpp 中,会出现编译错误:
'<type> <named_namespace>::{anonymous}::<function>(<parameters>)' 应该在<named_namespace>内部声明
有没有可能避免在单个文件中放置函数实现而不出现此错误?目前我使用关键字static
代替,但它会产生多个烦人的警告:
'<type> <named_namespace>::<function>(<parameters>)' 被声明为 'static',但未定义
据我了解,这些警告只能通过将函数保留在单个文件(头文件或源文件)中来禁用。
跨编译器的解决方法是可以接受的(如果有的话)。
或者将头文件分成“公共”和“私有”两个部分是否更有效?