2
template <typename T>
struct A
{
template <typename T1>
struct B {};
};
template <typename T>
using b = A<T>::B;
Die obige Zeile verweigert die Kompilierung.Ist es möglich, eine Klassenvorlage in C++ umzubenennen?
Klirren diesen Fehler gibt: Verwendung von Klassenvorlage 'A < T> :: type' erfordert Vorlage Argumente
fehlt Typname ist, A :: B ist ein abhängiger Typ. –
Borgleader
'struct A' könnte eine Template-Spezialisierung haben, wobei' A :: B' (zum Beispiel) eine statische Variable anstelle eines Typs sein könnte. Also müssen Sie für den Compiler angeben, dass Sie erwarten, dass 'A :: B' ein Typ ist, indem Sie' typenname 'davor schreiben. –
KABoissonneault