Vic*_*ell 2 c++ templates namespaces
我现在可以看出为什么包含这种做法不好
using namespace std;
Run Code Online (Sandbox Code Playgroud)
在项目的头文件中.我听说在私有的.cpp函数定义文件中包含这个指令并不是一个问题,因为它们通常不直接包含在main()中.模板化类是否存在例外,通常必须包含.cpp定义文件才能正确编译和运行(除非直接在头文件中包含定义)?
那么,一般规则是:
1)不要在头文件中使用namespace std.2)可以在私有.cpp定义文件中使用它,除非定义是用于模板化类.
我使用的规则是"不使用"使用命名空间"或任何文件中的命名空间别名,意图是#include的目标."
同样作为一般规则,"使用命名空间"或命名空间别名应出现在文件中的所有#includes之后.