Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Nem sikerült a "sablon név" függvénysablon specializálása
Megjegyzések
A fordító nem tudott egy függvénysablonra specializálódni. Ennek a hibának számos oka lehet.
Általánosságban elmondható, hogy a C2893-hibák megoldásának módja a függvényszignatúra áttekintése és annak biztosítása, hogy biztosan példányosítani tudja az összes típust.
Example
A C2893 azért fordul elő, mert a(z) f sablonparaméterét T-re következtetik, de a(z) std::map<int,int>-nak nincs data_type nevű tagja (T::data_type nem hozható létre T = std::map<int,int> segítségével.). Az alábbi példa C2893-at hoz létre.
// 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);
}