【发布时间】:2013-09-03 21:02:08
【问题描述】:
我一直在查看 Stackoverflow 上的一些帖子,我注意到大多数人使用 std::,但有些人使用 ::std::
我想我已经阅读了有关 全局范围 或命名空间中的类似内容作为使用 ::std:: 的理由(但我现在找不到它,因为它在评论中一个不相关的问题)
有什么理由更喜欢一种方式而不是另一种方式?
【问题讨论】:
标签: c++ namespaces std namespace-organisation
我一直在查看 Stackoverflow 上的一些帖子,我注意到大多数人使用 std::,但有些人使用 ::std::
我想我已经阅读了有关 全局范围 或命名空间中的类似内容作为使用 ::std:: 的理由(但我现在找不到它,因为它在评论中一个不相关的问题)
有什么理由更喜欢一种方式而不是另一种方式?
【问题讨论】:
标签: c++ namespaces std namespace-organisation
写这样的代码是个坏主意,但你可以:
namespace foo {
namespace std {
int bar;
}
std::string s;
}
在这种情况下,std::string 指的是 ::foo::std 命名空间,而不是 ::std 命名空间。所以,使用::std::string 只是更加小心谨慎。
【讨论】:
std:: 而不是::std::。