我试图了解以下引用的含义(3.4.3/3 N3797):
在成员的类或命名空间的范围内查找限定 ID 之后的名称。
namespace A
{
class C
{
public:
static const int a=7;
static int b;
};
}
int A::C::b=a; //7
的范围仅static int b;
由' 声明点之后的声明性区域组成。实际上:b
在类中声明的名称的潜在范围不仅包括名称声明点之后的声明区域,还包括所有函数体、默认参数、异常规范和 非静态的大括号或等式初始化器该类中的数据成员
这意味着static const int a=7;
不属于static int b;
. 因此在static const int a=7
中找不到int A::C::b=a;
。
这是标准中的错字还是我的误解?