命名空间很容易令人迷惑,毕竟它们不再受其声明所在命名空间的限制。内联命名空间只在大型版本控制里有用。...最好不要使用 using 指示,以保证名字空间下的所有名称都可以正常使用.
// 禁止 —— 污染名字空间
using namespace foo;
在 .cc 文件, .h 文件的函数, 方法或类中,...// 允许: .cc 文件中
// .h 文件的话, 必须在函数, 方法或类的内部使用
using ::foo::bar;
在 .cc 文件, .h 文件的函数, 方法或类中, 允许使用名字空间别名....这样的函数可以被定义成静态成员, 或是非成员函数. 非成员函数不应依赖于外部变量, 应尽量置于某个名字空间内. 相比单纯为了封装若干不共享任何静态数据的静态成员函数而创建类, 不如使用 2.1....译者 (YuleFox) 笔记
cc 中的匿名名字空间可避免命名冲突, 限定作用域, 避免直接使用 using 关键字污染命名空间;
嵌套类符合局部使用原则, 只是不能在其他头文件中前置声明, 尽量不要