Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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);
}