Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İşlev şablonu 'şablon adı' uzmanlık alanı oluşturulamadı
Açıklamalar
Derleyici bir işlev şablonu konusunda uzmanlaşamadı. Bu hatanın birçok nedeni olabilir.
Genel olarak, C2893 hatasını çözmenin yolu işlevin imzasını gözden geçirmek ve her türün örneğini oluşturabileceğinizden emin olmaktır.
Örnek
C2893, 'nin şablon parametresi f olarak Tçıkarılmış ancak std::map<int,int> üyesi std::map<int,int> olmayan (data_type ile T::data_typeörneği oluşturulamadığı) için T = std::map<int,int>oluşur. Aşağıdaki örnek C2893 oluşturur.
// 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);
}