Namespace von Namen einer Typdefinition (typedef)

Die Namen, die mit typedef deklarierten einzunehmen, den gleichen Namespace wie andere Bezeichner (außer Anweisungsmarken).Deshalb können sie den gleichen Bezeichner nicht verwenden, der bereits ein deklarierter Name nur in eine Typvereinbarung.Betrachten Sie das folgende Beispiel:

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

Die NAME-ausblendenden Regeln, die auch andere Bezeichner Regeln beziehen, die Sichtbarkeit von Namen, die mit typedefdeklariert werden.Daher ist das folgende Beispiel in C++ gültig:

// 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

Siehe auch

Referenz

Typedef-Spezifizierer