5

有什么区别:

namespace A
{
    inline namespace B
    {
        ...
    }

    ...
}

...

namespace A
{
    namespace B
    {
        ...
    }

    using namespace B;

    ...
}

...

也就是说,内联命名空间和在其封闭命名空间中放置 using 指令的非内联命名空间有什么区别?

4

1 回答 1

2

从 C++11 7.3.1p8 转述:

  • 内联命名空间及其封闭命名空间都被添加到用于参数相关查找的关联命名空间集中,只要其中一个命名空间存在。

  • 内联命名空间的每个成员随后都可以显式实例化或显式特化,就好像它是封闭命名空间的成员一样。

  • 通过显式限定在封闭命名空间中查找名称将包括由 using 指令引入的内联命名空间的成员,即使在封闭命名空间中有该名称的声明。

于 2013-07-20T04:51:46.810 回答