2013-05-09 8 views
5

Mówi w języku C++ 3.3.7.2 [basic.scope.class]C++ 11 Ponowna ocena nazwy w pełnym zakresie klasy?

nazwę N stosowanego w klasie S musi odnosić się do tej samej deklaracji w jego kontekście i przy ponownej ocenie w wypełnionym zakresem S .

Co jest przykładem jednostki tłumaczeniowej, gdzie nazwa N stosowanego w klasie S odnosi się do innej deklaracji w jego kontekście, niż gdy jest on poddany ponownej ocenie w wypełnionym zakresem S?

+0

możliwe duplikat [typedef zmian, co oznacza,] (http://stackoverflow.com/questions/12187549/typedef-changes-meaning) –

Odpowiedz

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]