根据 C++11 标准,§7.3.3[namespace.udecl]/1:
using-declaration 将名称引入到 using-declaration 出现的声明性区域中。
使用声明:
using typename
opt 嵌套名称说明符 unqualified-id;
using ::
unqualified-id;
在 using-declaration 中指定的成员名称在 using-declaration 出现的声明区域中声明。
在使用声明发生的声明区域中声明的名称是什么意思?
这是否意味着将该名称引入到使用声明发生的声明区域中?
声明名称和声明名称所表示的实体之间也有区别吗?
例子:
namespace N { static int i = 1; } /* Declares an entity denoted by
the name i in the declarative region of the namespace N.
Introduces the name into the declarative region of the namespace N.
Declares the name i in the declarative region of the namespace N? */
using N::i; /* Declares the name i in the declarative region of the
global namespace. Also introduces that name into the declarative
region of the global namespace? Also declares the entity that the
name i denotes? */