5
これはC++ 3.3.7.2 [basic.scope.class]C++ 11完了したクラスのスコープ内での名前の再評価?
にクラス
S
で使用される名前N
が同じコンテキストに宣言ときS
の完了範囲で再評価を参照しなければならないと言います。
クラスS
で使用される名前N
それはS
の完了範囲で再評価された場合よりも、その文脈で異なる宣言を意味する翻訳単位の例は何ですか?
これはC++ 3.3.7.2 [basic.scope.class]C++ 11完了したクラスのスコープ内での名前の再評価?
にクラス
S
で使用される名前N
が同じコンテキストに宣言とき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変更の意味](http://stackoverflow.com/questions/12187549/typedef-changes-meaning) –