Compilerfehler C2252

Aktualisiert: November 2007

Fehlermeldung

Vorlage kann in aktuellem Bereich nicht explizit instanziiert werden
cannot explicitly instantiate template in current scope

Der Compiler hat ein Problem mit einer expliziten Instanziierung einer Vorlage festgestellt. Sie können beispielsweise keine Vorlage explizit in einer Funktion instanziieren.

Im folgenden Beispiel wird C2252 generiert:

// C2252.cpp
class A {
public:
   template <class T>
   int getit(int i , T * it ) {
      return i;
   }
   template int A::getit<double>(int i, double * it);   // C2252
   // try the following line instead
   // template <> int A::getit<double>(int i, double * it);

};

int main() {
   // cannot explicitly instantiate in function
   template int A::getit<long>(int i, long * it);   // C2252
}