【发布时间】:2011-07-28 07:26:38
【问题描述】:
来自 ISO C++ DRAFT n3290 的一点:依赖于参数的名称查找:第 3.4.2 节,第 2 段,
对于函数调用中的每个参数类型 T,都有一组零个或多个 关联的命名空间和一组零个或多个关联的类 经过考虑的。命名空间和类的集合完全由 函数参数的类型(以及任何模板模板的命名空间 argument).Typedef 名称和 using-declaration 用于指定类型的 do 对这组没有贡献。确定命名空间和类的集合 通过以下方式:
— 如果 T 是基本类型,则其关联的命名空间和类集是 都是空的。
——如果 T 是一个类类型(包括联合),它的关联类是:类 本身;它所属的类别(如有的话);及其直接和间接 基类。其关联的命名空间是其所在的命名空间 关联的类是成员。
此外,如果 T 是类模板 专业化,其相关的命名空间和类还包括: 与模板参数类型相关的命名空间和类 为模板类型参数提供(不包括模板模板参数); 任何模板模板参数都是其成员的命名空间;和 用作模板模板参数的任何成员模板的类
成员。[ 注意: 非类型模板参数对 a 的集合没有贡献 关联的命名空间。 ——尾注]
任何人都可以用一个例子来解释这个......请
在上面的陈述中“命名空间和类的集合都是空的”..这怎么可能?
在第二点,他说的更进一步......请任何人解释一下吗?
【问题讨论】:
标签: c++ namespaces c++11 name-lookup