Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fehler beim Spezialisieren der Funktionsvorlage "Vorlagenname"
Bemerkungen
Der Compiler konnte nicht auf eine Funktionsvorlage spezialisiert werden. Dieser Fehler kann vielfältige Ursachen haben.
Im Allgemeinen besteht die Möglichkeit zum Beheben eines C2893-Fehlers darin, die Signatur der Funktion zu überprüfen und sicherzustellen, dass Sie jeden Typ instanziieren können.
Beispiel
C2893 tritt auf, da fder Vorlagenparameter T abgeleitet ist std::map<int,int>, aber std::map<int,int> kein Element data_type aufweist (T::data_type kann nicht mit T = std::map<int,int>.) instanziiert werden. Im folgenden Beispiel wird C2893 generiert.
// C2893.cpp
// compile with: /c /EHsc
#include <map>
using namespace std;
class MyClass {};
template<class T>
inline typename T::data_type
// try the following line instead
// inline typename T::mapped_type
f(T const& p1, MyClass const& p2);
template<class T>
void bar(T const& p1) {
MyClass r;
f(p1,r); // C2893
}
int main() {
map<int,int> m;
bar(m);
}