Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Kan functiesjabloon 'sjabloonnaam' niet specialiseren
Opmerkingen
De compiler is niet gespecialiseerd in een functiesjabloon. Er kunnen veel oorzaken zijn voor deze fout.
Over het algemeen is het oplossen van een C2893-fout het controleren van de handtekening van de functie en ervoor te zorgen dat u elk type kunt instantiëren.
Example
C2893 treedt op omdat de sjabloonparameter f wordt afgeleid als std::map<int,int>, maar std::map<int,int> geen lid data_type heeft (T::data_type kan niet worden geïnstantieerd met T = std::map<int,int>). In het volgende voorbeeld wordt C2893 gegenereerd.
// 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);
}