Error del compilador C2783
'declaración': no se pudo deducir el argumento de plantilla o genérico para 'identificador'
El compilador no puede determinar un argumento de plantilla. No se pueden usar argumentos predeterminados para deducir un argumento de plantilla.
El ejemplo siguiente genera el error C2783:
// C2783.cpp
template<typename T1, typename T2>
T1 f(T2) {
return 248;
}
int main() {
f(1); // C2783
// try the following line instead
int i = f<int>(1);
}
El error C2783 también puede producirse cuando se usan genéricos:
// C2783b.cpp
// compile with: /clr
using namespace System;
generic<typename T1, typename T2>
T1 gf(T2) {
T1 t1 = safe_cast<T1>( Activator::CreateInstance(T1::typeid));
return t1;
}
ref class MyClass{};
int main() {
int i;
i = gf(9); // C2783
// OK
i = gf<int>(9);
}