《C++编程规范——101条规则、准则与最佳实践》(C++ Coding Standards——101 Rules, Guidelines and Best Practices)
名字空间与模块
第57条(D):将类型及其非成员函数接口置于同一名字空间中
第58条(D):应该将类型和函数分别置于不同的名字空间中,除非有意想让他们一起工作
ADL(参数依赖查找,也成Koeing查找)。
关于57条和58条,在机器上实验了一下,没发现啥问题呀。???
第59条(A):不要在头文件中或者#include之前编写名字空间using
名字空间 using 是为了使我们更方便,而不是让我们用来叨扰别人的:在 #include 之前,绝对不要编写 using 声明或者 using 指令。
推论:在头文件中,不要编写名字空间级的 using 指令或者 using 声明,相反应该显式地用名字空间限定所有的名字。(第二条规则是从第一条直接得出的,因为头文件无法知道以后其他头文件会出现什么样的 #include 。) 简而言之:可以而且应该在实现文件中的 #include 指令之后自由地使用名字空间级的 using 声明和指令,而且会感觉良好。
第60条(D):要避免在不同的模块中分配和释放内存
第61条(A):不要在头文件中定义具有链接的实体
- // 不要在头文件中定义具有外部链接的实体