内联命名空间和using指令之间的C ++ 11的区别?

时间:2013-07-20 04:30:25

标签: c++ c++11

有什么区别:

namespace A
{
    inline namespace B
    {
        ...
    }

    ...
}

...

namespace A
{
    namespace B
    {
        ...
    }

    using namespace B;

    ...
}

...

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

1 个答案:

答案 0 :(得分:0)

从C ++ 11 7.3.1p8转载:

  
      
  • 内联命名空间及其封闭命名空间都添加到了一组   每当其中一个是。

  • 时,在依赖于参数的查找中使用的关联命名空间   
  • 内联命名空间的每个成员随后都可以   显式实例化或显式专门化,就像它是封闭命名空间的成员一样。

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

  •