将名称查找应用于刚声明的名称

时间:2014-05-28 09:16:42

标签: c++ declaration

int a;//1

int main()
{
    int a;//2
}

如3.4 / 1所述:

  

名称查找规则统一适用于所有名称(包括   typedef-names(7.1.3),namespace-names(7.3)和class-names(9.1))

因此,对于//2声明,将应用名称查找。会找到什么名字?

1 个答案:

答案 0 :(得分:1)

  

会找到什么名字?

唯一可能的是声明区域,以检查a是否未被无效重新声明。显然什么都没有找到。

此外,在声明名称时,没有(不合格的)名称查找,而是在使用它们时。标准没有说明要声明的名称的非限定名称查找,而是针对特定上下文中使用的名称,例如名称作为函数调用的后缀表达式。特别是,声明的名称必须满足某些条件,无论它们是本地的,在类中还是在命名空间范围内;这篇文章很好地列出了所有内容。