https://stackoverflow.com/questions/154469/unnamed-anonymous-namespaces-vs-static-functions
匿名命名空间和关键词 static 都可以让其声明的变量或函数变为内部链接属性,那么它们之间的区别是什么?
首先,匿名命名空间比关键词 static 的功能更丰富,因此我们更推荐使用前者。比如,static 无法修饰类(class/struct),
// 非法代码
static class sample_class { /* class body */ };
static struct sample_struct { /* struct body */ };
// 合法代码
namespace
{
class sample_class { /* class body */ };
struct sample_struct { /* struct body */ };
}
参考: