1
17
我总是使用
在标题中,我从不使用
|
2
19
我总是使用明确的。写性病不会伤害我,我清楚地知道它来自哪里。当您有一些遗留项目需要处理它自己的“字符串”、“向量”等需要维护时,它是有用的。代码携带的信息越多越好。 |
3
19
额外的打字不是这里的问题。显式限定名的问题是视觉混乱。让我们面对它,C++语法不整洁。无需通过不必要地将名称变长并慷慨地将代码洒在
我和杰夫·阿特伍德在一起: The Best Code is No Code At All . 这是真的。 名称空间导入是减少混乱的一个很好的方法,没有缺点:只要打开的名称空间的范围减少到一个编译单元 一 ,如果出现名称冲突,可以轻松解决。 为什么直白的名字(通常)应该更易读一直是我的一个谜。读者通常应该对代码有足够的了解,以便能够推断出语义。如果不是,代码无论如何都需要修复。
1)
推论:没有
|
4
4
我的一般规则是总是显式地在头中使用名称空间,并且通常在代码中使用。前者的原因是在定义的每个部分中明确地说明正在使用的内容,而后者的原因是,如果需要的话,可以很容易地使用来自另一个命名空间的替换。例如,如果我们想开始使用foo::string而不是std::string,我们只需要更新头和using语句,而不是用代码中的foo::string替换std::string的每个实例。 当然,对于驻留在std::namespace中的类来说,这是不太有用的,因为即使替换一个类,您仍然可能在std中使用其他类,并且可能会遇到歧义问题,但这只是一个例子。 |
5
4
但是,在任何情况下,如果发现符号的来源都比较困难,我都会拒绝导入它的整个名称空间。 我尝试限制导入命名空间的范围:
对于“众所周知”的图书馆,比如
作为旁注,
|
6
2
我只在有一些歧义时使用显式名称空间。它更易读,但是额外的输入太繁琐,您必须假设其他开发人员对标准库有一个基线级别的熟悉。 只有在我拼出一个名称空间的其他时候,我才使用它一次或两次,比如添加一个快速调试语句,或者使用一些非标准库。 我通常在文件范围内声明名称空间,但是如果混合名称空间,那么将声明放在函数范围内更靠近使用它的点可能是有意义的。 |
7
2
我倾向于在.cpp文件的顶部显式地导入我需要的名称,所以… 使用std::cout; 使用std::endl; 等。。。 这样我就可以控制我使用的名称,很容易看到它们来自何处,并且代码在使用时不会杂乱无章。 在极少数情况下,我使用来自不同名称空间的两个名称,在使用时完全限定它们。 我总是在头中使用完全限定的名称,几乎不在任何地方使用“使用名称空间X”… |
8
1
|
notamaster · 匿名命名空间中的变量声明和其他位置的定义 2 年前 |
Bipolo · 使用另一个命名空间的名称创建子命名空间 2 年前 |
The Vivandiere · 从命名空间中引入单个名称 6 年前 |
Bercovici Adrian · 静态类内定义的类的约束 6 年前 |
shir k · 使用命名空间重载函数(&O) 6 年前 |
yearntolearn · R包命名空间 6 年前 |
ambikanair · 与特权pod共享装载命名空间 6 年前 |
landau · 如何检查环境是否为包命名空间[重复] 6 年前 |