Compilerfehler C2899

Der Typname kann nicht außerhalb einer Vorlagendeklaration verwendet werden

Das typename-Schlüsselwort kann nur in einer Vorlagendefinition oder -deklaration verwendet werden.In einer Vorlagendeklaration kann es auf zwei Arten verwendet werden:

// C2899.cpp
// compile with: /c
template<typename T> 
class X {};

// Another way
template<class T> 
struct XX {
   typename T::A a;   // T::A is a type
};

Im folgenden Beispiel wird C2899 generiert:

// C2899b.cpp
// compile with: /c
struct Y {
   typedef int B;
   typename Y::B b;   // C2899
};