【问题标题】:On namespace 'names': ::std:: vs std::在命名空间'names'上:::std:: vs std::
【发布时间】:2013-09-03 21:02:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ namespaces std namespace-organisation


    【解决方案1】:

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

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

    在这种情况下,std::string 指的是 ::foo::std 命名空间,而不是 ::std 命名空间。所以,使用::std::string 只是更加小心谨慎。

    【讨论】:

    • 所以,对于一般用途,std:: 将是使用的,对吧?
    • 通常,是的,我会使用std:: 而不是::std::
    猜你喜欢
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    • 2010-12-25
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多