5
它說在C++ 3.3.7.2 [basic.scope.class]C++ 11名稱在一個類的完成範圍內重新評估?
甲名稱
N
在類S
應指在其上下文相同的聲明中,並當在S
完成的範圍重新評估。
什麼是翻譯單元,其中的一類S
使用的名稱N
的示例指的是在其上下文中的不同的聲明比當它被重新評估中的S
完成的範圍?
它說在C++ 3.3.7.2 [basic.scope.class]C++ 11名稱在一個類的完成範圍內重新評估?
甲名稱
N
在類S
應指在其上下文相同的聲明中,並當在S
完成的範圍重新評估。
什麼是翻譯單元,其中的一類S
使用的名稱N
的示例指的是在其上下文中的不同的聲明比當它被重新評估中的S
完成的範圍?
struct X {};
struct Y {};
typedef X N;
struct S
{
N n;
typedef Y N;
};
$ g++ test.cpp
9:15: error: declaration of ‘typedef struct Y S::N’ [-fpermissive]
4:11: error: changes meaning of ‘N’ from ‘typedef struct X N’ [-fpermissive]
可能重複的[typedef changes meaning](http://stackoverflow.com/questions/12187549/typedef-changes-meaning) – 2013-05-09 01:50:31