第57条 将类型及其非成员函数接口置于同一名字空间中
摘要:如果要将非成员函数设计成类X的接口的一部分,那么就必须在与X相同的名字空间中定义它们,以便正确调用。
第58条 应该将类型和函数分别置于不同的名字空间中,除非有意想让它们一起工作
第59条 不要在头文件中或者#include之前编写名字空间using
第60条 要避免在不同的模块中分配和释放内存
第61条 不要在头文件中定义具有链接的实体
摘要:重复会导致膨胀,具有链接的实体,包括名字空间级的变量或函数,都需要分配内存,在头文件中定义这样的实体将导致连接时错误或者内存的浪费,请将所有具有链接的实体放入实现文件。
第62条 不要允许异常跨越模块边界传播
第63条 在模块的接口中使用具有良好可移植性的类型
摘要:不要让类型出现在模块的外部接口中,除非能够确保所有的客户代码都能正确的理解该类型,应该使用客户代码能够理解的最高层抽象。