2013-05-09 3 views
5

これはC++ 3.3.7.2 [basic.scope.class]C++ 11完了したクラスのスコープ内での名前の再評価?

にクラスSで使用される名前Nが同じコンテキストに宣言ときSの完了範囲で再評価を参照しなければならないと言います。

クラスSで使用される名前NそれはSの完了範囲で再評価された場合よりも、その文脈で異なる宣言を意味する翻訳単位の例は何ですか?

+0

[typedef変更の意味](http://stackoverflow.com/questions/12187549/typedef-changes-meaning) –

答えて

1
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] 
関連する問題