Syntax für das Schlüsselwort „typename“
Das Schlüsselwort „typename“ wird in C verwendet, wenn auf einen verschachtelten Namen verwiesen wird, der ein abhängiger Name ist , was bedeutet, dass es in einer Vorlageninstanz mit einem unbekannten Parameter verschachtelt ist. Dieses Schlüsselwort gibt explizit an, dass der Name einen Typ darstellt, insbesondere wenn die abgeleitete Entität (Wert, Typ oder Vorlage) mehrdeutig ist.
Verwendung von „Typname“ in verschachtelten Namen
Bedenken Sie den folgenden Codeausschnitt:
template<class K> class C { struct P {}; vector<P> vec; void f(); }; template<class K> void C<K>::f() { typename vector<P>::iterator p = vec.begin(); }
Hier ist das Schlüsselwort „typename“ erforderlich, um p zu deklarieren als Typ, nämlich ein Iterator für einen Vektor von P Strukturen. Ohne „typename“ würde der Compiler den Sequenzvektor
::iterator als einen Ausdruck interpretieren, der einen Wert oder eine Funktion darstellt, was falsch wäre.
Zusätzliche Fälle, in denen „typename“ erforderlich ist
Neben verschachtelten Namen ist im Folgenden auch das Schlüsselwort „typename“ erforderlich Szenarien:
Das obige ist der detaillierte Inhalt vonWann und warum benötigen Sie das Schlüsselwort „typename' in C-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!