3

我一直在查看 Stackoverflow 上的一些帖子,我注意到大多数人使用std::但有些人使用::std::

我想我已经阅读了有关全局范围或名称空间中类似内容的内容作为使用的理由::std::(但我现在找不到它,因为它是在对不相关问题的评论中)

有什么理由更喜欢一种方式而不是另一种方式吗?

4

1 回答 1

5

编写这样的代码是个坏主意,但你可以

namespace foo {
    namespace std {
        int bar;
    }
    std::string s;
}

在这种情况下, thestd::string指的是::foo::std命名空间,而不是::std命名空间。所以,使用::std::string只是更加明确地小心一点。

于 2013-08-31T04:56:23.230 回答