typename
Nelle definizioni di modello fornisce typename
un suggerimento al compilatore che un identificatore sconosciuto è un tipo. Negli elenchi di parametri del modello viene usato per specificare un parametro di tipo.
Sintassi
typename
identifier
;
Osservazioni:
La typename
parola chiave deve essere usata se un nome in una definizione di modello è un nome completo che dipende da un argomento di modello. È facoltativo se il nome completo non è dipendente. Per altre informazioni, vedere Modelli e risoluzione dei nomi.
typename
può essere usato da qualsiasi tipo in qualsiasi punto di una dichiarazione o di una definizione di modello. Non è consentito nell'elenco delle classi di base, a meno che non sia un argomento modello per una classe di base del modello.
template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType> // typename OK.
{};
La typename
parola chiave può essere usata anche al posto di negli elenchi di parametri del class
modello. Ad esempio, le istruzioni seguenti sono semanticamente equivalenti:
template<class T1, class T2>...
template<typename T1, typename T2>...
Esempio
// typename.cpp
template<class T> class X
{
typename T::Y m_y; // treat Y as a type
};
int main()
{
}
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per