【发布时间】:2019-06-20 18:46:57
【问题描述】:
这个问题可能是微不足道的(并且可能是重复的)。
据我了解,一个 C/C++ 头文件(其中包含 using namespace),当被其他源文件使用时,它被复制到该源文件中 #include 指令所在的位置.
此外,鉴于源文件使用了相对大量的包含指令,并且整个标准库可能有几个“重新定义”(仅针对不同的实现)。
这里是主要问题:如果源文件中没有using namespace 语句,我如何知道我当前在源文件中使用了哪些命名空间?
我正在阅读源文件,但我不知道正在使用哪个命名空间。
可以通过使用 ::std::getline() 之类的东西来覆盖命名空间的巧妙性。
如果没有简单的方法来确定命名空间,那么重构这些文件是否公平,例如使用string 将其替换为::std::string?
【问题讨论】:
-
您应该重构这些头文件以删除
using namespace指令。 -
从不将
using namespace ...;放在头文件中。
标签: c++ namespaces include