使用命名空间std和Template Classes
using namespace std and Template Classes
我现在明白了为什么包含是一种糟糕的做法
using namespace std;
在项目的头文件中。我听说在private.cpp函数定义文件中包含这个指令并不是什么大问题,因为它们通常不会直接包含在main()中。模板类通常必须包含.cpp定义文件才能正确编译和运行(除非您将定义直接包含在头文件中),这里有例外吗?
那么,一般规则是:
1) 不要在头文件中使用命名空间std。2)在private.cpp定义文件中使用它是可以的,除非这些定义是针对模板化类的。
我使用的规则是"不要在任何文件中使用"using namespace"或命名空间别名,以作为#include的目标。"
同样作为一般规则,"使用命名空间"或命名空间别名应出现在文件中的所有#includes之后。
相关文章:
- 表示"accepting anything for this template argument" C++概念的通配符
- 传递给std::function template的template参数究竟代表什么
- 在template中使用std::variant的template函数
- C++ template for QList
- C++ - 为什么这里需要'template'关键字?
- 使用"std::enable_if_t" "function template has already been defined"
- C++模板错误:"invalid explicitly-specified argument for template parameter"
- C++ class template
- 在"template"和函数声明之间使用:template<typename trait> using tr = base_trait<trait> void fn(tr::t
- 为什么编译器说"candidate template ignored: couldn't infer template argument 'InputIterator'"?
- 为什么在这种情况下我需要 .template
- Threads with Classes and std::packaged_task
- std::span constructor, libcxx vs libstdc++, template vs non-
- 模板函数参数到模板函数的"candidate template ignored: could not match ..."
- MacOS 上的 LLVM - 标准文件 iosfwd 中未知类型名称'template'
- std::get like (partial) template specialization
- 使用命名空间std和Template Classes
- Template classes C++ / Qt
- Template classes
- C++ Template Classes