Condividi tramite


Spazio dei nomi di nomi typedef

I nomi dichiarati utilizzando typedef sono inclusi nello stesso spazio dei nomi degli altri identificatori (ad eccezione delle etichette di istruzione). Tali nomi pertanto non possono utilizzare lo stesso identificatore di un nome dichiarato in precedenza, tranne che in una dichiarazione di tipo classe. Si consideri l'esempio seguente:

// typedef_names1.cpp
// C2377 expected
typedef unsigned long UL;   // Declare a typedef name, UL.
int UL;                     // C2377: redefined.

Le regole per nascondere i nomi relative ad altri identificatori controllano anche la visibilità dei nomi dichiarati utilizzando typedef. Di conseguenza, l'esempio seguente è valido in C++.

// typedef_names2.cpp
typedef unsigned long UL;   // Declare a typedef name, UL
int main()
{
   unsigned int UL;   // Redeclaration hides typedef name
}

// typedef UL back in scope

Vedere anche

Riferimenti

Identificatore typedef