LLVM 编译器 2.0:警告“使用命名空间 std”
在使用 LLVM 2.0 的 Xcode 中,当我将 using namespace std;
行放入我的 C++ 代码中时,我收到以下警告:
语义问题
using 指令引用隐式定义的命名空间“std”
有没有办法解决这个问题?为什么会发出这样的警告?
In Xcode using LLVM 2.0, when I put the line using namespace std;
in my C++ code, I get this warning:
Semantic Issue
Using directive refers to implicitly-defined namespace 'std'
Is there a way to fix this? Why is it giving that warning?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您是否包含任何标准头文件?否则编译器不知道
namespace std
。请发布更多代码以澄清。
Have you included any standard header files? Otherwise the compiler doesn't know about
namespace std
.Please post more code to clarify.
将 using 命名空间 std 移到 #include 之后可以消除此警告。
Moving the using namespace std to after the #include can eliminate this warning.
我这样解决了这个问题
i solved this problem like this
我发现这个问题已经很老了,但是对于将来检查这个问题的人来说,我想添加 LLVM 文档中的这个链接作为讨论的补充,并供人们寻找更多信息:
LLVM 编码标准:不要使用 using namespace std;
我相信标题很能说明为什么我分享它来帮助解决这个问题。
编辑:
因此,如果使用“使用 std 命名空间;”对于要使用标准库的每种情况,显式键入 std:: 。它避免了与源文件名称空间的冲突。这就是文章上面引用的建议。
I see that this question is pretty old, but for anyone checking this out in the future, I wanted to add this link from the LLVM documentation as a supplement to the discussion and for poeple looking for more info:
LLVM Coding Standards: Do Not use using namespace std;
I believe that the title is pretty indicative of why I've shared it to help with this question.
Edit:
So instead if using 'using std namespace;' explicitly type std:: for every case where you with to use the standard library. It avoids conflicts with source file namespaces. This is what the quote above from the article advises.