Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det gick inte att specialisera funktionsmallens mallnamn
Anmärkningar
Kompilatorn kunde inte specialisera en funktionsmall. Det kan finnas många orsaker till det här felet.
I allmänhet är sättet att lösa ett C2893-fel att granska funktionens signatur och se till att du kan instansiera alla typer.
Example
C2893 beror på f att T mallparametern std::map<int,int> är std::map<int,int> saknar medlemmen data_type (T::data_type kan inte instansieras med T = std::map<int,int>.). I följande exempel genereras C2893.
// 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);
}